0

以下に説明する送信イベントがFireFoxとIEで発生しない理由がわかりません。ChromeでOK

$("#frame-right").on("submit", "form", function(event){                  
    alert('Submit done')
});

手伝って頂けますか?

編集

フォームは「送信」ボタンを押して送信していますが、フォームは.load()関数を介してロードされたページに含まれており、上記の関数が定義されている場合は存在しません。

参考までに、同じ場所で、すべてのブラウザで正常に機能するこの関数を定義しました

$("#frame-right").on("click","a",function(event){
alert('link clicked');
}

「送信」イベントは「クリック」イベントのように動的にバインドできますか?

編集2

お返事をありがとうございます。問題は、load()関数の後で、ロードされたフォームをFirefoxで送信できないことです。

4

3 に答える 3

2

私の間違い...

長いテストの結果、フォームはテーブル要素の内側またはテーブルの外側で宣言する必要があることがわかりました...

この例は機能しません:

<table>
  <form>
    <tr><td><button type="submit">Submit</button></td></tr>
  </form>
</table>

この例は機能します:

<form>
  <table>    
    <tr><td><button type="submit">Submit</button></td></tr>
  </table>
</form>
于 2012-07-31T15:52:40.373 に答える
0

したがって、ロード関数のコールバックにそのリスナーをアタッチして、フォームがロードされた後に確実にアタッチされるようにする必要があります。

たとえば、次のようになります。

$('#result').load('ajax/test.html', function() {


    $("#frame-right").on("submit", "form", function(event){                  
        alert('Submit done')
    });


});
于 2012-07-31T14:43:02.937 に答える
0

これはあなたのために働くはずです。ajaxを実行するときは、デフォルトの送信動作を防止していることを確認してください。

$(function(){
  $(document).on("submit", "form", function(event){   
      event.preventDefault() ;  // prevent dfaul submit behaviour
      alert("submitting")
  });
});
于 2012-07-31T14:46:24.000 に答える