ボタンがページ上で何度もクリックされた場合 - ポストバックがすでに進行中で、ページの送信を中止するというjavascript/jqueryを使用する方法がありますか?ポストバックが進行中かどうかを確認する方法はありますか?
おかげ
ボタンがページ上で何度もクリックされた場合 - ポストバックがすでに進行中で、ページの送信を中止するというjavascript/jqueryを使用する方法がありますか?ポストバックが進行中かどうかを確認する方法はありますか?
おかげ
フォーム送信を引き起こす可能性のあるフォーム要素を無効にすることで、ユーザーがダブルクリックしないようにすることができます。
チェックアウトhttp://greatwebguy.com/programming/dom/prevent-double-submit-with-jquery/例です。
あなたのクリックイベントがtrueにあなたのクリックハンドラに変数を設定し、唯一の値がfalseの場合、ハンドラを進行させる可能性があります。もちろん、コールバックが終了したときにfalseに設定する必要があります。
if (!processInProgress) {
processInProgress = 1
// start the process
}
あなたはポストが進行しているときにそれをクリックして、ポストバックが終了したときに、再度、それを有効にしないことができるようにあなたは、最初のクリックボタンを無効にすることができます。
<script type="text/javascript" language="JavaScript">
var submitted = false;
function SubmitTheForm() {
if(submitted == true) { return; }
document.myform.submit();
document.myform.mybutton.value = 'Thank You!';
document.myform.mybutton.disabled = true;
submitted = true;
}
</script>
<form method="post" action="#">
<input type="submit" onclick=return SubmitTheForm()>
</form>
あなたはonclickハンドラのボタンを無効にすることができます。
$('input[type="submit"]').click(function(e) {
e.preventDefault();
var self = this;
$(self).attr('disabled', 'disabled');
$.post('url',$(self).closest('form').serialize(), function() {
$(self).removeAttr('disabled'); // re-enable after request complete.
});
});
優れています。助けてくれてありがとう :) –