1
フォームに送信イベントハンドラがあります(送信ボタン以外のものをクリックしたときにトリガされることがあります)。dispatchEventでDefault()を防止するにはどうすればよいですか?
I はは、それが実際にかかわらず、フォームを送信する必要はありませんが、は、dispatchEventが発射された後、私がそれを取り消すことはできないようだ?Chromeの場合
myForm.addEventListener('submit', function(e) {
e.preventDefault();
console.log(e.defaultPrevented); // false
});
myForm.dispatchEvent(new Event('submit', {'detail': 'mydetail'}));
これはまだfalse
を出力しますが、フォームが送信されません。 (希望の動作)。実際に私がでpreventDefault()行を削除しても、それはまだ提出していないのですか?
しかし、Firefoxは別の話で、常にフォームを送信します。
どうすれば変更できますか?
ボタンで送信しても問題ありませんか? –
私はボタンを持っていない、私は実際に提出するフォームを望むことはありません。 – Codemonkey
あなたはmyForm.dispatchEvent({ 'mydetail'、解約: '詳細' 真}新しいイベント( '提出' を、))試してみてください。 – sandyJoshi