Vanilla JavaScript Form Validation
Validate HTML forms with vanilla JavaScript using the Constraint Validation API. Provides custom error messages, real-time validation on input, and.
Code
function validateForm(form) {
const fields = form.querySelectorAll('input, textarea, select');
let isValid = true;
fields.forEach((field) => {
const errorEl = form.querySelector(`[data-error-for="${field.name}"]`);
if (!field.checkValidity()) {
isValid = false;
if (errorEl) errorEl.textContent = field.validationMessage;
field.setAttribute('aria-invalid', 'true');
} else {
if (errorEl) errorEl.textContent = '';
field.removeAttribute('aria-invalid');
}
});
return isValid;
}
const form = document.querySelector('form');
form.addEventListener('input', (e) => validateForm(e.currentTarget));
form.addEventListener('submit', (e) => {
if (!validateForm(form)) e.preventDefault();
});