ページにたくさんのテキストボックスと送信ボタンがあります。サーバーサイドメソッドを実行するために、テキストボックスのTextChangedイベントを接続しました。ユーザーはテキストボックスに値を入力し、タブで次のテキストボックスに移動し(textchangedイベントをトリガーします)、最後に送信ボタンをクリックして別のサーバー側メソッドを呼び出します。すべての機能は非同期です。submitメソッドは、両方とも同じデータを共有するため、textchangeメソッドが終了した後にのみ実行する必要があります。問題は、textchangeメソッドの完了に少し時間がかかり、textchange関数が完了する前にsubmitメソッドがトリガーされる場合があることです。これを防ぐにはどうすればよいですか?関数をロック/キューに入れるにはどうすればよいですか?
質問する
683 次
2 に答える
1
何もロックしたりキューに入れたりしないでください!変更イベント+ajaxが完了するまで、送信ボタンを無効にするだけです。
$('#submitBtn').attr('disabled', 'disabled');
またはjQuery1.6以降の場合:
$('#submitBtn').prop('disabled', true);
そして、変更ajaxが終了すると:
$('#submitBtn').attr('disabled', '');//or $('#submitBtn').prop('disabled', false)
于 2012-04-03T22:04:45.037 に答える
0
BenAlmanのjQueryQueuingプラグインhttp://benalman.com/projects/jquery-message-queuing-plugin/を、必要なサウンドから見てください。
于 2012-04-03T22:25:11.780 に答える