0Pricing
HTML Academy · Lesson

The Constraint Validation API

Read validity states and check constraints with JavaScript.

Validation Without JavaScript

HTML5 introduced built-in form validation via attributes: required, type="email", type="number", min, max, pattern, minlength, maxlength. The browser validates automatically on submit and shows error messages, with no JS required.

<input type="email" name="email" required>
<input type="number" name="age" min="18" max="120" required>
<input type="text" name="phone" pattern="\d{10}" required>

CSS Validation Selectors

:invalid matches inputs that fail validation; :valid matches passing inputs. :user-invalid (modern) matches only after user interaction — avoiding red borders on a pristine form. Style errors with these pseudo-classes.

input:user-invalid {
  border-color: red;
}
input:user-invalid + .error {
  display: block;
}

All lessons in this course

  1. The FormData API
  2. The Constraint Validation API
  3. reportValidity and setCustomValidity
  4. Form Reset Events and State Management
← Back to HTML Academy