HTMLInputElement: invalid イベント

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.

invalid イベントは、送信可能な要素が制約検証を受け、制約を満たしていない場合に発行されます。

このイベントは、送信時にフォームの問題の概要を表示するのに便利です。フォームが送信されると、 invalid イベントがそれぞれの妥当ではない状態にあるフォームコントロールで発生します。送信可能な要素が妥当であるかどうかは、その所有者である <form> を送信する前、または checkValidity() メソッドがその要素またはその所有者である <form> に呼び出された後にチェックされます。

blur ではチェックが行われません。

構文

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

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

oninvalid = (event) => {};

イベント型

一般的な Event です。

フォームが無効な値で送信された場合、送信可能な要素がチェックされ、エラーが見つかった場合、無効な要素で invalid イベントが発生します。この例では、入力に無効な値があったために invalid イベントが発生した場合、無効な値がログに記録されます。

HTML

html
<form action="#">
  <div>
    <label>
      1 から 10 までの整数を入力してください:
      <input type="number" min="1" max="10" required />
    </label>
  </div>
  <div><input type="submit" value="送信" /></div>
</form>
<hr />
Invalid values:
<ul id="log"></ul>

JavaScript

js
const input = document.querySelector("input");
const log = document.getElementById("log");

input.addEventListener("invalid", (e) => {
  log.appendChild(
    Object.assign(document.createElement("li"), {
      textContent: JSON.stringify(e.target.value),
    }),
  );
});

結果

仕様書

Specification
HTML Standard
# event-invalid
HTML Standard
# handler-oninvalid

ブラウザーの互換性

BCD tables only load in the browser

関連情報