首页 > 解决方案 > Rails form_with 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!。我检查了Network谷歌开发者控制台中的选项卡,它确实将 JSON 对象发回了。有什么我想念的吗?

标签: javascriptjqueryruby-on-railsajax

解决方案


原来,我放id错地方了。

我应该放入id标签form_with而不是submit标签。

在我更改为这条线后,它可以完美运行。

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

推荐阅读