我的Rails 3应用程序出了问题:我的视图中有一个脚本显示上传的进度条(上传过程有效):
<h1>Ajouter des images:</h1>
<%= form_for [:admin, :gallery, @painting], html: { multipart: true} do |f| %>
<%= f.hidden_field :gallery_id %>
<%= f.label :image, "Upload paintings:" %>
<%= f.file_field :image, multiple: true, name: "painting[image]" %>
<% end %>
<script id="template-upload" type="text/x-tmpl">
<div class="upload">
{%=o.name%}
<div class="progress"><div class="bar" style="width: 0%"></div></div>
</div>
</script>
但是当我尝试上传文件时,我收到了这个错误:
Uncaught Error: Syntax error, unrecognized expression: <div class="upload">
Argentina.gif
<div class="progress"><div class="bar" style="width: 0%"></div></div>
</div>
来自jquery.js文件:
Sizzle.error = function( msg ) {
throw new Error( "Syntax error, unrecognized expression: " + msg );
我真的不知道如何解决它,我已经寻求了很多! 谢谢你的帮助!
答案 0 :(得分:13)
由于模板标记内的缩进,这种情况正在发生。看看:jquery-htmlstring-versus-jquery-selectorstring
您可以使用$.parseHTML()
:
data.context = $($.parseHTML(tmpl("template-upload", file))[1])
答案 1 :(得分:0)
jquery-file-upload在ruby 1.9.x中存在兼容性问题。最近修复了https://github.com/blueimp/jQuery-File-Upload/pull/2031
其他人遇到了同样的问题(包括我自己)https://github.com/waynehoover/s3_direct_upload/issues/47。
尝试使用bundle update jquery-fileupload-rails
更新您的gem。 (我假设你正在使用那颗宝石。)
答案 2 :(得分:0)
使用模板时删除Jquery函数 $()。这与Jquery 1.9.1兼容。你应该处理像bellow
这样的模板tmpl("template-upload", {file: file, icon: icon_name[type]})
而不是
$(tmpl("template-upload", {file: file, icon: icon_name[type]}))
答案 3 :(得分:0)
使用最新版本的jquery,添加tril
就可以了。
$(tmpl("template-upload", {file: file, icon: icon_name[type]}).trim())