submit
含まれているフォームのイベント にバインドし、_.debounceの概念を使用して送信の繰り返しを制限したくなるでしょう。
jQuery:
// prevent the user from submitting the form twice within a second
var DELAY = 1000;
var lastSubmit = null;
$("#form").submit(function(e) {
if (lastSubmit === null || Date.now() - lastSubmit > DELAY)
return true;
// two ways to prevent the default action
e.preventDefault();
return false;
});
またはまっすぐな JavaScript:
// prevent the user from submitting the form twice within a second
var DELAY = 1000;
var lastSubmit = null;
document.getElementById('form').addEventListener('submit', function(e) {
if (lastSubmit === null || Date.now() - lastSubmit > DELAY)
return true;
// two ways to prevent the default action
e.preventDefault();
return false;
});
要件を満たすように調整DELAY
するか、フォームの送信に失敗して無効な状態をリセットすることができます。
フックに属性を使用する必要がある場合は、次のようになります。
echo "<form onsubmit=\"var stop = lastSubmit && Date.now() - lastSubmit <= 1000;stop && e.preventDefault();return !stop;\">";