*(请注意,一切都在 Ajax 之外完美运行。可提交类可在更改时提交表单)
因此,我在这里设置了一个基本示例,由于某种原因,我无法在表单提交上显示 <%= escape_javaScript(item) %> 。为了更好地解释,我将只显示我的相关代码。
index.html.erb
<% @contacts.each do |contact| %>
<%= form_for contact,:remote => true do |f| %>
<div class="editField">
<%= f.collection_select :agent_id, get_user_list("agent"), :id, :full_name, {:include_blank => 'None assigned'},:class => "submittable" %>
</div>
<% end %>
<div id="agent2">
<%= contact.agent_id %>
</div>
<% end %>
contact_controller.rb
def update
@contact = Contact.find(params[:id])
respond_to do |format|
if @contact.update_attributes(params[:contact])
format.js { render }
end
end
end
更新.js.erb
$('#agent2').html("<%= escape_javaScript(contact.agent_id) %>");
完成此设置后,我没有得到任何响应或对 (div id agent2) 进行更改,但如果我使用此代码有 update.js.erb
$('#agent2').html("something");
文本“something”替换当前的 contact.agent_id
我很困惑为什么它不能正常工作。我使用 Rails 3.0.3 和 ruby 1.8.7 (2010-08-16 patchlevel 302) [i686-darwin10],并使用 Jquery。
最佳答案
您调用escape_javascript
有什么特殊原因吗? helper ?看来您只是想要 agent_id
值在#agent2
内分区是这样吗?您是否尝试过 $('#agent2').html("<%= contact.agent_id %>");
通常,当我使用 escape_javascript
时辅助方法我将传入部分内容,因此调用将类似于:
$('#agent2').html("<%= escape_javascript( render(:partial => 'partial_name') ) %>");
希望有帮助!
关于ruby-on-rails-3 - 轨道 3 : Ajax and the <%= escape_javaScript(item) %>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6587734/