【问题标题】:Rails escape_javascript and remotipartRails escape_javascript 和 remotipart
【发布时间】:2014-04-25 14:57:32
【问题描述】:

当用 jquery 和 rails(在 4.0.4 测试)替换 html 时,以下工作:

replace.js.erb 的内容

$('#my_div').html("<%= j(render 'my_partial') %>");

_my_partial.html.erb 的内容

"This" works
<%= '"This" also works' %>

但是,当使用 remotipart gem (1.2.1) 响应 ajax 文件提交时,replace.js.erb 会失败,如下所示。

create.html.erb 的内容

<%= form_for @my_model, :html => {:remote => true} do |f| %>
  <%= f.file_field :some_file %>
  <%= f.submit %>
<% end %>

它会在浏览器中导致以下 javascript 错误,因为引号没有正确转义。

语法错误:意外的标识符

服务器响应:$('#my_div').html("\"This\" 有效\n"This" 失败\n");

请注意,如果我在未选择文件的情况下提交,则不会发生 javascript 错误并且它会正确重新呈现。未选择文件时似乎未调用 remotipart,可能是因为不需要多部分表单。

【问题讨论】:

    标签: jquery ruby-on-rails ruby remotipart


    【解决方案1】:

    我终于尝试解决同样的问题:

    $("#my_div").html("<%= escape_javascript(render :partial => 'my_partial').gsub('&quot;', "'") %>");
    

    【讨论】:

    • 谢谢,我遇到了同样的问题。您的解决方案帮助了我。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-17
    • 1970-01-01
    • 1970-01-01
    • 2012-08-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多