DIRECT
form.submit()
送信だけ実行01
入力チェックconstraint validation
未実行02
submitイベントsubmit event
未発火03
送信ボタン情報event.submitter
なしFORM SUBMISSION LAB
どちらも送信。でも、通る経路が違います。
LIVE COMPARISON
送信だけ実行入力チェックconstraint validation
未実行submitイベントsubmit event
未発火送信ボタン情報event.submitter
なしクリック相当入力チェックconstraint validation
待機中submitイベントsubmit event
待機中送信ボタン情報event.submitter
待機中DECISION GUIDE
入力を検証required / type / pattern
イベントを発火submitで処理を受け取る
ボタンを識別event.submitterで取得
通常のフォーム送信をJavaScriptから始めるなら、
form.requestSubmit(button)const form = document.querySelector("form");
const button = form.querySelector("[type='submit']");
// 検証とsubmitイベントを通らない
form.submit();
// 送信ボタンを押したときと同じ流れ
form.requestSubmit(button);