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使其显而易见。
这个链接帮助了我:
确保在单击它们后禁用了提交按钮。 它有助于本地化问题。
$("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
“`