Rails5:表单远程 - 触发提交

时间:2017-07-19 06:45:11

标签: jquery ruby-on-rails ruby-on-rails-5

我有一个带有远程选项集的表单。 我需要以编程方式触发提交。

在Rails 4中,我使用$('form').trigger('submit.rails'),它按预期工作。 在Rails 5(5.1.2和5.0.4)中,触发该事件会导致标准提交(formdata,而不是AJAX)。

对于Rails员工' submit.rails'不属于Rails项目,请参阅here

有什么想法吗?

更新

表格代码:

<%= form_with(model: post, remote: true) do |form| %>
  <% if post.errors.any? %>
    <div id="error_explanation">
      <h2><%= pluralize(post.errors.count, "error") %> prohibited this post from being saved:</h2>
      <ul>
      <% post.errors.full_messages.each do |message| %>
        <li><%= message %></li>
      <% end %>
      </ul>
    </div>
  <% end %>
  <div class="actions">
    <%= form.submit %>
  </div>
<% end %>

1 个答案:

答案 0 :(得分:4)

正如评论主题中所述,jquery-rails gem需要包含在您的application.js文件中才能正常工作

  

jquery和jquery-ujs文件将添加到资产管道中,供您使用。如果他们默认不在app / assets / javascripts / application.js中,请添加以下行:

//= require jquery
//= require jquery_ujs

您似乎错过了第二行

//= require jquery_ujs

按照GitHub问题中的再现步骤进行操作,然后确保包含该行修复了该问题,并且javascript控制台中的$('form').trigger('submit.rails')开始提交为

  

PostsController处理#create as JS