ボタンのダブルクリックを防ぐために、次のjQueryコードがあります。それは正常に動作します。Page_ClientValidate()
ページが有効な場合にのみダブルクリックが防止されるようにするために使用しています。[検証エラーがある場合は、サーバーへのポストバックが開始されていないため、フラグを設定しないでください]
ページが再度読み込まれる前に、ボタンの 2 回目のクリックを防ぐためのより良い方法はありますか?
isOperationInProgress = yesIndicator
ページがサーバーへのポストバックを引き起こしている場合にのみ、フラグを設定でき ますか? event
ユーザーが2回目にボタンをクリックする前に呼び出されるのに適したものはありますか?
注:新しいAPIを必要としないソリューションを探しています
注:この質問は重複していません。ここでは、 の使用を避けようとしていますPage_ClientValidate()
。event
また、使用する必要がないようにコードを移動できる場所を探していますPage_ClientValidate()
注:私のシナリオにはajaxは含まれていません。フォームはASP.Net
サーバーに同期的に送信されます。JavaScript のボタン クリック イベントは、ダブルクリックを防止するためだけのものです。フォームの送信は、ASP.Net を使用して同期されます。
現在のコード
$(document).ready(function () {
var noIndicator = 'No';
var yesIndicator = 'Yes';
var isOperationInProgress = 'No';
$('.applicationButton').click(function (e) {
// Prevent button from double click
var isPageValid = Page_ClientValidate();
if (isPageValid) {
if (isOperationInProgress == noIndicator) {
isOperationInProgress = yesIndicator;
} else {
e.preventDefault();
}
}
});
});
参考文献:
上記の参考文献の @Peter Ivan によるメモ:
Page_ClientValidate() を繰り返し呼び出すと、ページが目障りになりすぎる可能性があります (複数のアラートなど)。