2017-04-17 12 views
0

jQueryの使い方を学んでいます。フォームを送信する前にoff()メソッドを使用する目的が何であるか理解したいと思います。たとえば、次のコードでは、まずフォームがpreventDefault()を使用して送信されないようにし、Ajaxが完了し、終了するとフォームが最終的に送信されます。しかし、なぜsubmit()の前にoff()を使う必要がありますか?jQuery off()フォーム提出前

$(document).ready(function() { 
    $('form[name="Payment"]').on('submit', function(e) { 
     e.preventDefault(); 

     AjaxCall(); 

     $(document).ajaxStop(function() { 
      $('form[name="Payment"]').off('submit').submit(); // Once Ajax request are finished, submit the form. 
     }); 
    }); 
}); 
+3

を頼まれたものを説明しています。 –

+0

後続のクリックを停止して、送信を複数回トリガします。基本的には、送信イベントをオフにします。 –

+0

@UmairAhmedいいえ、ここには該当しません。クリックとは関係がありません。 – charlietfl

答えて

1

同じイベントをトリガすると、同じイベントハンドラコードが再び実行されるためです。

デフォルトは常に防止され、AJAXは呼び出されます。そして、イベントが再びトリガされ、何も変更せずに無限ループになります。

イベントリスナーを削除すると、それ以降の使用を提出し、ブラウザのデフォルトのプロセスになるだろう

あり、この周りに他の方法がありますが...しかし、この答えは、あなたがそれ以外の場合は、無限ループを取得します

+0

ありがとう、私は今それを得る。 –

関連する問題