2012-02-23 13 views
0

私は送信したくないajaxフォームを持っています。私のmain.jsファイルで以下のコードを使用しても、アクションを妨げません。私に迷惑をかけるのは、正確なと同じコードを入れてタグに入れるとうまくいきます。なぜこれがこれをするのだろうか?あなたが知っているように、ブロックしたいフォームのページは、jQueryのajax​​関数を介して読み込まれます。それが理由だろうか?助けてくれてありがとう!jQuery .stopImmediatePropagation();外部JSファイルでは動作しません

HERESにコード

$('.searchPageForm').submit(function(b) { 
    b.stopImmediatePropagation(); 
    console.log("Form Submitted"); 
    console.log("App Version: VGxLEM8pZoJGK"); 
    return false; 
}); 
+1

以上が、それは問題でフォームをexecuted_before_されるヘッド部に含まれている外部ファイル内にある場合ハンドラは何にもバインドされません。フォームがロードされた後に実行するか、委譲されたイベントハンドラを使用する必要があります(委任イベントが送信されたと仮定します)。 – nnnnnn

+0

ありがとう、私は '.load'のコールバック関数を介してバインドイベントを追加します。 –

答えて

1

フォームが動的にロードされている場合、いずれかのフォーム(すなわち、AJAXでそれを呼び出すコールに挿入された後に提出するハンドラをバインドする必要があります完全な機能)、またはそのよう、.on()のようなライブイベントハンドラを使用します。

$('.searchPageForm').on('submit', function(b) { 
    b.stopImmediatePropagation(); 
    console.log("Form Submitted"); 
    console.log("App Version: VGxLEM8pZoJGK"); 
    return false; 
}); 
+0

助けてくれてありがとう –

関連する問題