HTMLFormElement: submit イベント

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

submit イベントは <form> が送信されたときに発生します。

submit イベントは <form> 要素自身で発生するものであり、その中の <button><input type="submit"> で発生するものではないことに注意してください。しかし、フォームの送信が起動されたことを示すために送信される SubmitEvent には、送信リクエストがどのボタンで起動されたかを submitter プロパティが含まれています。

submit イベントは、ユーザーが送信ボタンを押したり、 Enter キーをフォーム内のフィールド(例えば <input type="text">)の編集中に押したりしたときに発生します。このイベントは form.submit() メソッドを呼び出した場合には送信されません。

メモ: フォームの検証に合格していないフォームを送信しようとすると、 invalid イベントが発生します。この場合、フォーム検証が送信を阻止しますので、 submit イベントは発生しません。

構文

このイベント名を addEventListener() 等のメソッドで使用するか、イベントハンドラープロパティを使用するかしてください。

js
addEventListener("submit", (event) => {});

onsubmit = (event) => {};

イベント型

SubmitEvent です。 Event を継承しています。

Event SubmitEvent

イベントプロパティ

以下に列挙したプロパティに加えて、このインターフェイスは親インターフェイスである Event を継承しています。

submitter 読取専用

HTMLElement オブジェクトで、フォームの送信を起動するために関わったボタンやその他の要素を示します。

この例は EventTarget.addEventListener() を使用してフォームの送信を待受けし、実行されたときに現在の Event.timeStamp をログ出力し、それからフォームを送信する既定の動作を阻止します。

HTML

html
<form id="form">
  <label>Test field: <input type="text" /></label>
  <br /><br />
  <button type="submit">Submit form</button>
</form>
<p id="log"></p>

JavaScript

js
function logSubmit(event) {
  log.textContent = `Form Submitted! Timestamp: ${event.timeStamp}`;
  event.preventDefault();
}

const form = document.getElementById("form");
const log = document.getElementById("log");
form.addEventListener("submit", logSubmit);

結果

仕様書

Specification
HTML Standard
# event-submit
HTML Standard
# handler-onsubmit

ブラウザーの互換性

BCD tables only load in the browser

関連情報