相关疑难解决方法(0)

防止在Rails AJAX表单中提交双重提交

是)我有的:

我有一个表格,我通过AJAX提交.

<%= form_for([@map, @annotation], :remote => true ) do |f| %>
   ...
   <%= f.submit "Save annotation", :class => "btn btn-primary", :id => "annotation-submit-button" %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

我想要的是:

我想防止双重提交.由于表单仅在请求成功完成后消失,因此只要数据库尚未完成数据写入,用户就可以单击"提交"按钮.显然,我不希望这样.

我尝试过的:

我尝试将此添加到提交按钮本身 - 但它不起作用.该按钮被禁用,但没有数据被发送.

:onclick => "this.disabled = true"
Run Code Online (Sandbox Code Playgroud)

我还尝试在提交按钮中添加一个点击处理程序.这与以前具有相同的效果.实际上没有数据发送到控制器,但是按钮被禁用.

$("#annotation-submit-button").click(function(event) {
  $(this).attr("disabled", "disabled");
  return false;
});
Run Code Online (Sandbox Code Playgroud)

也尝试了同样没有返回false.禁用该按钮后没有任何反应.

$("#annotation-submit-button").click(function(event) {
  $(this).prop("disabled", "disabled");
});
Run Code Online (Sandbox Code Playgroud)

我开始认为这是Rails特有的?

ajax jquery ruby-on-rails submit ruby-on-rails-3

8
推荐指数
1
解决办法
5619
查看次数

标签 统计

ajax ×1

jquery ×1

ruby-on-rails ×1

ruby-on-rails-3 ×1

submit ×1