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

前端之家收集整理的这篇文章主要介绍了jquery – 防止在Rails AJAX表单中提交双重提交前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
是)我有的:

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

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

我想要的是:

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

我尝试过的:

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

:onclick => "this.disabled = true"

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

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

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

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

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

解决方法

在Rails 3及更高版本的视图中尝试 disable_with
<%= f.submit "Save annotation",:data => {:disable_with => "Saving..."},... %>

对于Rails 2:

<%= f.submit "Save annotation",:disable_with => "Saving...",... %>

猜你在找的jQuery相关文章