ダブルクリックを防ぐために、送信ボタンを1回だけクリックする必要があります。
誰かが投稿した1つの方法を次に示します。
$(document).ready(function () {
$("#submit").one('click', function (event)
{
event.preventDefault();
//do something
$(this).prop('disabled', true);
});
});
1) 私の理解では、.one は 1 回だけトリガーされます。もしそうなら、クリックが一度だけ行われるので、 event.preventDefault() と $(this).prop('disabled', true) の必要性がわかりません。これ自体が修正になります。テストから、ダブルクリックした場合、それが 1 回だけ発生することに気付きました (preventdefault および無効化せずに試しました)。
2) .one が 1) で想定したことをしなかった場合、 $(this).prop('disabled', true); の部分を理解しています。ボタンを無効にしますが、event.preventDefault(); が必要な理由がよくわかりません。私の理解では、デフォルトのアクション、この場合は送信が妨げられます。これが本当なら、event.preventDefault(); は何が良いでしょうか。送信したいのですが、一度だけです。
3) .one だけでダブルクリックを防げませんか。私はこれで正しいですか?残りのロジックは必要ありませんよね?