HTMLInputElement: checkValidity() method

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.

The checkValidity() method of the HTMLInputElement interface returns a boolean value which indicates if the element meets any constraint validation rules applied to it. If false, the method also fires an invalid event on the element. Because there's no default browser behavior for checkValidity(), canceling this invalid event has no effect.

Note: An HTML <input> element with a non-null validationMessage is considered invalid, will match the CSS :invalid pseudo-class, and will cause checkValidity() to return false. Use the HTMLInputElement.setCustomValidity() method to set the HTMLInputElement.validationMessage to the empty string to set the validity state to be valid.

Syntax

js
checkValidity()

Parameters

None.

Return value

Returns true if the element's value has no validity problems; otherwise, returns false.

Examples

HTML

We include a required number field and a button to check its validity.

html
<p>
  <label for="age">Your (21 to 65) </label>
  <input type="number" name="age" required id="age" min="21" max="65" />
</p>
<p>
  <button type="button" id="check">checkValidity()</button>
</p>
<pre id="log"></pre>

JavaScript

We log the return value of checkValidity() when the button is activated. We also listen for the invalid event and append a message to the output when it fires.

js
const output = document.querySelector("#log");
const checkButton = document.querySelector("#check");
const ageInput = document.querySelector("#age");

ageInput.addEventListener("invalid", () => {
  output.textContent += "Invalid event fired.\n";
});

checkButton.addEventListener("click", () => {
  const checkVal = ageInput.checkValidity();
  output.textContent = `checkValidity returned: ${checkVal}`;
});

Results

When false, if the value is missing, below 21, above 65, or otherwise invalid, the invalid event will be logged in the output. To report the error to the user, use HTMLInputElement.reportValidity() instead.

Specifications

Specification
HTML
# dom-cva-checkvalidity-dev

Browser compatibility

See also