AJAX仅更新一次div

时间:2015-05-27 16:41:17

标签: javascript jquery ruby-on-rails ajax

我第一次使用AJAX并且遇到了以下问题

我有说明,下面我有按钮字段,我可以输入新的说明,点击按钮后我想用AJAX刷新描述。

//_description.html.erb
 <div class="description-field">
        <%= @description.text %>
 </div>

在更新中的控制器中,我设置了format.js

//update.js.erb
$('.description-field').replaceWith("<%= @description.text %>");

//_description.html.erb
 <%= simple_form_for @description, remote: true do |f| %>
        <%= f.input :text %>
        <%= f.button :submit %>
 <% end %>

但不幸的是,它仅刷新一次描述,当我第二次单击按钮没有变化时,我不得不刷新网站以查看新文本。 有人可以帮我解决吗?

1 个答案:

答案 0 :(得分:1)

这是因为.replacewith替换了整个html元素,而不仅仅是它包含的内容。将$('.description-field').replaceWith("<%= @description.text %>");更改为$('.description-field').html("<%= escape_javascript @description.text %>");

同样使用escape_javascript,因为我只是为了安全。