Jquery Rails 3 …表单提交两次…删除两次…帮助

似乎eveyone有这个问题,但没有人有一个外行人的条款答案,甚至没有一个适当的解决方案。

我有一个表单,使用ajax提交表单,并自动将其添加到文本字段下面的列表中。 表单提交两次,因此我有两个相同的(除了ID)记录。 更糟糕的是当你试图删除它不会更新页面,因为它试图删除相同的记录两次。

我希望有人在那里有一个很好的答案…顺便说一句我对rails的新意见。 码:

index.html.erb

SSCC

    @orderlines.reverse %>

_form.html.erb

  true) do |f| %> 

_order_line.html.erb

   |  |  ( 'Are you sure?', :method => :delete, :remote => true %>)  

create.js.erb

 $('#orderlines').prepend(''); $('#orderlines > li:first ').effect('highlight', {}, 3000); $('#orderline_form > form')[0].reset(); 

destroy.js.erb

 $('#').css('background', 'red'); $('#').hide("fade", {}, 1500); 

在我看来,“application.js”存储了两次(… / public / assets / application.js和… / app / assets / javascripts / application.js)。 Rails 3.2.1 Asset管道编译它并创建另一个。 检查并删除不需要的内容。

请记住,您可能已经有其他重复的资产,您刚刚开始注意到这一点,因为jQuery使其显而易见。

这个链接帮助了我:

http://www.ruby.code-experiments.com/blog/2011/10/another-gotcha-with-the-rails-31-asset-pipeline-or-why-are-my-jquery-ujs-ajax-要求-触发的twi.html

确保在单击它们后禁用了提交按钮。 它有助于本地化问题。

  $("form").submit(function(){ $('input[type=submit]').attr('disabled', 'disabled'); }); 

我在Rails 4上遇到了同样的问题。我在development.rb中有这些设置:

config.assets.digest = true
config.assets.enabled = true

我删除了这些并运行了rake assets:clean

现在它提交的应该是这样的。

在Rails 5上,rails-ujs取代了jquery_ujs。 如果两者都需要,事件将触发两次

“`

// app / assets / javascripts / application.js

// = require jquery_ujs < - 删除此项

// =需要rails-ujs

“`