私が持っているもの:
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固有のものだと思い始めましたか?