次のコードを使用してフォームに送信しています。
element.dispatchEvent(new Event("submit"));
インスペクターがエラーを返します:オブジェクトはこのアクションをサポートしていません
これはChromeで機能します。
このコマンドの目的は、クリックされたときに部門がフォームの送信イベントを呼び出すようにすることです。
Jqueryはオプションではありません
これは、将来の変更を考慮してIE11およびその他のブラウザーで動作させるための最良の方法です。
var event;
if(typeof(Event) === 'function') {
event = new Event('submit');
}else{
event = document.createEvent('Event');
event.initEvent('submit', true, true);
}
$el.dispatchEvent(event);
私はちょうど同じ問題を抱えていましたが、以下はIE11で動作するようです:
var event = document.createEvent("Event");
event.initEvent("submit", false, true);
// args: string type, boolean bubbles, boolean cancelable
element.dispatchEvent(event);
これを修正するには、ポリフィルを使用するのが最善です。 (カスタムイベントポリフィル)
# using yarn
$ yarn add custom-event-polyfill
# using npm
$ npm install --save custom-event-polyfill
それをあなたのjavascriptに含める/必要とします
import 'custom-event-polyfill'
;
さまざまなアプローチの断片を組み立てて、これを機能させました:
var customEvent = document.createEvent('HTMLEvents');
customEvent.initEvent('myCustomEvent', true, true);
document.dispatchEvent(customEvent);
正直に言うと、これは私にはあまり意味がありません。ドキュメント上にイベントを作成し(HTMLEvents
という名前が必要と思われます)、イベントを別の名前で初期化します。誰かがこれをよりよく説明できる場合は、答えに組み込むことができるように、下にコメントを追加してください。
いずれにせよ、標準イベントリスナーを使用して、IE11(および最新のブラウザー)でこのカスタムイベントをリッスンできます。
document.addEventListener('myCustomEvent', function(){
console.log('Event received.');
});