我有一个表格,我通过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特有的?