在AJAX中呈现的rails 3表单将html与文本字段值混合在一起
我正在通过AJAX呈现一个表单:
$('#details').html("<%== escape_javascript(render ('form')) %>");
感谢d11wtq! 现在的问题是,这个表单是用一些html作为文本呈现的!尽管文本字段和文本区域中的所有值都是正确的。
这是表格
<%= form_for @note, :remote => true, :html => { :'data-type' => 'html', :id => 'new-note-form' } do |f| %>
<% if @note.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@note.errors.count, "error") %> prohibited this note from being saved:</h2>
<ul>
<% @note.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<%= f.hidden_field :wine_id, :value=>@note.wine.id %>
<%= @note.wine.name %>
<div class="field">
<%= f.label :rating %> <br />
<%= f.text_field :rating %> </div>
<div class="field">
<%= f.label :text %> <br />
<%= f.text_area :text,:size => "60x12" %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
因此,当呈现该表单时,在块<;%=@note.wine.name%>之后是Red Wine div>打印输出。文本字段中包含值和一些html。文本区也是如此。插入的html代码总是一些,所以它不是随机的。 感谢您的时间和帮助:)
解决方案
$('#details').html("<%= raw escape_javascript(render ('form')) %>")
确保传递RAW,因为一些较新版本的Rails目前在转义Java脚本和html时遇到了问题。还要确保您的选择器已就位。并且在您的控制器中有一个对js Formart的响应,在您的视图中有一个js.erb模板。
相关文章