私はそうのような形+レイアウトを持っている:フォームの送信イベントが発生しないのはなぜですか(jQuery)?
<form ...>
<div id="editor">
[form html]
<input type="submit" value="Submit form" />
</div>
</form>
そして、次のjavascript:
$(function() {
var form = $('#editor').parents('form');
alert(form.length); // this alerts "1"
$(document).on('submit', 'form', function() {
alert('document form submit fired'); // this works as expected (alerts)
});
form.on('submit', function() {
alert('selected form submit fired'); // this is never alerted
});
});
このフォームは、AJAXを介してロードされていません。ページが読み込まれると、最初のダイアログに "1"が表示されます。ただし、フォームを送信するときは、1つのアラートだけが起動されます。アラートは、ドキュメント内のすべてのフォームに対して送信されます。
なぜこれが起こりますか?
jsFiddleで動作するhttp://jsfiddle.net/sERhZ/多分あなたのHTMLや設定で何か問題がありますか? –
実際、ハンドラが与えられた場合、フォームに直接適用されたハンドラが最初に起動する必要があります。これは完全なコードですか?ブラウザのコンソールにエラーがありますか? – tvanfosson
私は、最初のハンドラで2番目に発生することを防ぐ 'false false'を返すと確信しています。私は正しい? – gdoron