0

リクエストが開始される前に最初にフォーム送信を無効にしてから、成功したらフォーム送信を再度有効にしようとしています

これは私のコードです:

$.ajax({
 beforeSend:function(){
//disable form
            $('form').on('submit',function(){
               return false;
            });
},
success:function(){
            //enable form
            $('form').on('submit',function(){
               return true;
            });
},
complete:function(){
            //enable form
            $('form').on('submit',function(){
               return true;
            });
,
});

成功して完全に機能していないようです。フォームは無効になっていますが、有効になっていません。

最新のjQueryバージョンを使用しています。

4

4 に答える 4

3

別の戦略を使用することをお勧めします。グローバル変数を設定して、フォームを送信するかどうかを決定します。次に、フォームを送信するときに確認します。

var canSubmit = 1;

$.ajax({
 beforeSend:function(){
   //disable form
   canSubmit = 0;
},
success:function(){
   //enable form
   canSubmit = 1;
},
complete:function(){
   //disable form
   canSubmit = 1;
});

$('form').on('submit',function() {
   if (!canSubmit) {
      return false;
   }
});
于 2013-08-22T09:57:52.857 に答える
0

beforeSendで return false を実行する代わりに、これを試してください

$('form').on('submit',function(e){
   e.preventDefault();
   return false;
});
于 2013-08-22T09:58:26.960 に答える