4

我的 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 );

我真的不知道如何解决它,我已经寻求了很多!谢谢你的帮助 !

4

4 回答 4

14

发生这种情况是因为您的模板标签内的标识。看看:jquery-htmlstring-versus-jquery-selectorstring

您可以使用以下方法避免它$.parseHTML()

data.context = $($.parseHTML(tmpl("template-upload", file))[1])
于 2013-03-22T05:31:59.920 回答
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. (我假设您正在使用该宝石。)

于 2013-02-22T22:43:36.640 回答
0

使用模板时删除 Jquery 函数$( ) 。这与 Jquery 1.9.1 兼容。你应该像下面这样处理模板

tmpl("template-upload", {file: file, icon: icon_name[type]})

代替

$(tmpl("template-upload", {file: file, icon: icon_name[type]}))
于 2013-03-07T08:13:02.000 回答
0

使用最新版本的 jquery,添加tril它应该可以解决问题

$(tmpl("template-upload", {file: file, icon: icon_name[type]}).trim())
于 2013-05-15T18:14:54.087 回答