私の Web サイトには、Jquery で処理される登録送信ボタンがあります。問題は、アカウントを登録するプロセスが進行している間に、人々が複数回クリックするのを防ぎたいということです。このため、ユーザーがクリックしたらクリック イベントを無効にし、エラーが発生しない限りクリックを再度有効にしないようにしています。ブローを見る
function registerClick() {
$('#register_submit').off('click',registerClick);
$.ajax( {
type: "POST",
url: "/ajax/register.ajax.php",
data: $("#register_form").serialize(),
success: function(data) {
var result = jQuery.parseJSON(data);
if (result.success) {
alert('Account registered. You are now being transferred to Paypal for payment.');
window.location = result.success;
} else if (result.error) {
alert(result.error);
$('#register_submit').on('click',registerClick);
} else {
alert('Unhandled exception');
$('#register_submit').on('click',registerClick);
}
}
});
return false;
};
// signup
$('#register_submit').on('click',registerClick);
残念なことに、ボタンをダブルクリックすると、2 回目のクリックで、フォームを # に送信するというデフォルトのボタン アクションがトリガーされます。
ボタンをすべて無効にする必要があるのではないかと考えていますが、Jquery は初めてなので、これは未知の領域です。
編集:
また、これはボタン HTML であることにも言及しておく必要があります (通常の送信ボタンではありません)。
<input type="image" class="input_submit" id="register_submit" src="images/get_your_email.png" />