Progressively Enhanced Form Validation, Part 4: Custom validation messages
This form uses browser built-in form validation when JavaScript is not available.
When JavaScript is available:
- The form is progressively enhanced using the Constraint Validation API
- The ValidityState API is used to create custom validation messages
- Custom JavaScript logic runs to handle the "interests" checkbox group