1. 問題の説明
JS を使用してフォーム メソッド submit を呼び出してフォームを直接送信すると、submit イベントは応答しません。なぜ?ご存知の方はご返信下さい。同様に、input.select() を使用してテストしましたが、select イベントに応答できました。この理由はひとまず脇に置いて、まずは現在の問題を解決する方法を見てみましょう。
イベントに応答しないコード例:
実際の運用ではアラートは発生しません。
submit メソッドを使用してフォームを送信することは、Unobtrusive Javascript の原則に反しますが、たとえば、検索プロンプト (オートコンプリート) を作成し、アイテムを選択する場合、JS を使用して送信する必要がある場合があります。検索フォーム。
2. 問題分析
イベントに応答しないため、これらのイベントは手動でのみトリガーできます。手動トリガー計画を決定する前に、イベント登録方法を確認してください。
2 つの「オリジナル」登録方法があります。コード例を参照してください。
このような登録イベントは、フォームに onsubmit メソッドを追加します。したがって、このメソッドを直接実行できます。これは、イベントを手動でトリガーするのと同じです。 コード例を見てください:
これはアラートを受け取る可能性があります。
しかし、今日の「高度な」DOM2 標準登録メソッドと IE の登録メソッド AttachEvent は、すでに非常に一般的に使用されています。これらの登録メソッドには、onsubmit メソッドが存在しません。form.onsubmit() を使用すると、エラーが直接報告されます。
3. 解決策
もちろん、「高度な」登録方法自体も、DOM2 標準と IE 用に異なるプログラムを作成するだけで済みます。さらに、このプログラムは「オリジナル」の登録方法にも有効です。 。コード例を参照してください。
4. コードの概要
ここでは、各方法の詳細については説明しません。詳しくない人は、関連する情報を自分で確認してください。コード全体をつなぎ合わせてみましょう。
閫佷俊
FX銇с伅form.submit()銇屽繀瑕併仾銇忋€佺洿鎺ャ儠銈┿兗銉犮倰閫佷俊銇欍倠銇熴倎銆併亾銇