2013-08-31 11 views
56

.on()に問題があります。 私は複数のフォーム要素(フォームはclass="remember")を持っています。もう1つはAJAXを使ってform.rememberです。 だから、私はそれはのようなイベントに何かを提出扱いたい:Jquery .on()submit event

$('form.remember').on('submit',function(){...}) 

が、AJAXを追加フォームが動作しません。

問題はどこですか?バグですか?

+9

てみ '$(文書).on( '提出'、 'form.remember'、機能(){...})' – Sergio

答えて

131

あなたは$('form.remember').submit(と同じドキュメントレベル

$(document).on('submit','form.remember',function(){ 
    // code 
}); 

$('form.remember').on('submit'仕事にイベントを委任する必要がありますが$(document).on('submit','form.remember'を使用する場合、それはまた後で追加DOMのために動作します。

+16

はまた、心の中でそれを負担'$(form.remember ')よりもはるかにパフォーマンスが劣ります(' submit'')。これで、ドキュメント内の**すべての** submitイベントをリスニングする必要があります。可能であれば、可能な場合は 'on' 'document'を少し聞き取るよりも、スコープを少し制限するようにしてください。 – Liam

+2

$( 'body')on( 'submit'、 'form.remember'、function(){ // code });私の問題 –

12

私は同じsymtomsに問題がありました。 私のケースでは、私のサブミット関数に "return"ステートメントがないことが判明しました。例えば

$("#id_form").on("submit", function(){ 
    //Code: Action (like ajax...) 
    return false; 
}) 
+0

私にも同様の問題がありました。 2つ以上のフォームがあり、それぞれのフォームでAJAXアクションを実行する必要がありました。 「入力」ボタンをクリックすると、Ajaxアクションが呼び出されなかった –

+0

Ok。私は答えを編集する。私の目的は良いと思うが、それを示す方法はなかった。ありがとう –