Rails5:表单远程 - 触发提交

Mat*_*Mat 5 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 项目的一部分,请参见此处

任何的想法?

更新:

表格代码:

<%= 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 %>
Run Code Online (Sandbox Code Playgroud)

Sim*_*ime 4

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

jquery 和 jquery-ujs 文件将添加到资产管道中并可供您使用。如果默认情况下它们尚未位于 app/assets/javascripts/application.js 中,请添加以下行:

//= require jquery
//= require jquery_ujs
Run Code Online (Sandbox Code Playgroud)

看来你错过了第二行

//= require jquery_ujs
Run Code Online (Sandbox Code Playgroud)

按照 GitHub 问题中的重现步骤进行操作,然后确保包含该行可以为我解决问题,然后$('form').trigger('submit.rails')在 javascript 控制台中开始提交为

由 PostsController#create as JS 处理