如何在Rails 2.3.8应用程序中修复此jQuery Ajax呈现问题?

时间:2011-11-17 02:32:42

标签: jquery ruby-on-rails ajax

我正在尝试使用jQuery做级联依赖选择框。我在名为“get_descriptions.js.erb”的文件中有以下内容,它被调用得很好:

<% fields_for :person do |f| %>
    $("#descriptiondiv .floater:first").html("<%= f.select :description, @person.descriptions.map_by_person_type %>");
<% end %>

我可以在Firebug中看到确实返回了相应的响应,但屏幕上没有显示任何内容。以下是Firebug中报告的确切响应,没有错误:

$("#descriptiondiv .floater:first").html("<select id="person_description" name="person[description]"><option value="Employee">Employee</option></select>");

该响应显示在浏览器上。

但是,如果我这样做:

<% fields_for :person do |f| %>
    $("#descriptiondiv .floater:first").html("hello world");
<% end %>

然后“你好世界”确实出现在我期望的地方。

为什么我的选择框没有在屏幕上呈现,但“你好的单词”是?

1 个答案:

答案 0 :(得分:1)

看起来像是引用问题,请尝试添加escape_javascript

<% fields_for :person do |f| %>
    $("#descriptiondiv .floater:first").html("<%= escape_javascript f.select :description, @person.descriptions.map_by_person_type %>");
<% end %>

或只是j

<% fields_for :person do |f| %>
    $("#descriptiondiv .floater:first").html("<%= j f.select :description, @person.descriptions.map_by_person_type %>");
<% end %>