- Validate user input with HTML5 attributes
- Implement client-side validation with JavaScript
- Use regular expressions for pattern matching
- Provide real-time validation feedback
- Prevent form submission with invalid data
BMC201 - Web Technology
2026-02-24
Lecture 18
Form Validation
Week 5 | Unit II: DOM Manipulation
BMC201 - Web Technology
Mr. Prashant Kumar Nag, Assistant Professor
Learning Objectives
Why Validate Forms?
HTML5 Built-in Validation
<input type="email" required>
<input type="number" min="1" max="100">
<input type="text" pattern="[A-Za-z]+" placeholder="Letters only">
<input type="url" placeholder="https://example.com">Browsers provide automatic validation for these types.
Required Fields
<form>
<input type="text" name="username" required>
<input type="email" name="email" required>
<button type="submit">Submit</button>
</form>The required attribute prevents submission if field is empty.
Pattern Attribute
<input type="text" pattern="[0-9]{10}"
placeholder="10-digit phone"
title="Enter exactly 10 digits">pattern uses regular expressionstitle shows hint on validation failureJavaScript Validation: Basics
const form = document.querySelector('form');
form.addEventListener('submit', function(e) {
e.preventDefault();
validateForm();
});preventDefault() stops form submission until validation passes.
Validation Function
Email Validation with Regex
function isValidEmail(email) {
const regex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
return regex.test(email);
}^ start of string[^\s@]+ one or more non-space, non-@ chars@ literal @\. literal dot$ end of stringPhone Number Validation
This pattern requires exactly 10 digits.
Real-time Validation
const emailInput = document.getElementById('email');
emailInput.addEventListener('blur', function() {
const isValid = /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(this.value);
if (!isValid) {
this.style.borderColor = 'red';
} else {
this.style.borderColor = 'green';
}
});blur event fires when user leaves the input field.
Displaying Error Messages
Password Matching
Password Length Check
Using classList for Error States
Complete Validation Example
const form = document.querySelector('#signup-form');
form.addEventListener('submit', function(e) {
e.preventDefault();
const email = document.getElementById('email').value;
const phone = document.getElementById('phone').value;
if (isValidEmail(email) && isValidPhone(phone)) {
alert('Form submitted successfully!');
} else {
alert('Please fix errors');
}
});
function isValidEmail(email) {
return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email);
}Best Practices
Practice Task
Create a registration form with:
Questions?
Next: Lecture 19 - ES6+ Features