Rails form_with ajax回调不起作用

时间:2018-06-19 18:36:33

标签: javascript jquery ruby-on-rails ajax

我正在尝试使用最新的form_with发送Ajax帖子。

这就是我所做的。

<%= form_with url: comments_path, data: { type: :json } do |form| %>
  <%= form.text_area :context, class: "rt-textarea mg-b-10" %>
  <%= form.submit "Submit", class: "btn-m btn-blue, id: "comment-submit" %>
<% end >

<script type="text/javascript">
  jQuery(document).ready(function($) {
    $('#comment-submit').on('ajax:success', function(event, data) {
      console.log('GET RESPONSE!');
    });
  });
</script>

但是,当我发送表单帖子时,控制台没有打印GET RESPONSE!。 我在Google Developer Console中检查了Network标签,它确实将JSON对象发送回了。我有什么想念的吗?

2 个答案:

答案 0 :(得分:1)

我认为您缺少end标签。 form_with可能像这样:

<%= form_with url: users_path do |form| %>
      <%= form.text_field :email %>
      <%= form.submit %>
 <% end %>

答案 1 :(得分:0)

结果是,我将id放在错误的位置。

我应该将id放在form_with标记中,而不是submit标记中。

切换到此行后,它可以正常运行。

<%= form_with url: comments_path, data: { type: :json }, id: "add_comment" do |form| %>
....
<% end %>