jquery - rails 5 : form remote - trigger submit

标签 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 %>

最佳答案

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

The jquery and jquery-ujs files will be added to the asset pipeline and available for you to use. If they're not already in app/assets/javascripts/application.js by default, add these lines:

//= require jquery
//= require jquery_ujs

看来您缺少第二行

//= require jquery_ujs

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

Processing by PostsController#create as JS

关于jquery - rails 5 : form remote - trigger submit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45182804/

相关文章:

ruby-on-rails - 将参数传递给局部 View - Rails 4/postgresql/json

javascript - 如何在 Rails Active Storage 中使用 Dropzone JS 进行多次上传?

javascript - Jquery rolloever - 闪烁问题

javascript - 单击 Div 类时,提示它是内部内容的 Div 类

jquery - 如何在jquery selectize插件中设置从数据库中选择值

ruby-on-rails - 终端重启后路由丢失。 rails 5.0.1

ruby-on-rails - Rails 5,更新 Controller 中的特定表单字段

javascript,jQuery 同时运行具有两个不同输入的单个函数

ruby-on-rails - 为 Rails 应用程序自动生成 UML 图的工具

ruby-on-rails - 在 Builder::XmlMarkup 中处理异常