Implementing Form Validation with Vanilla JS (Beginner-Friendly)
Nwafor Onyebuchi
Posted on August 5, 2024
Practice Exercise: Form Validation
Objective
Create a basic form with fields for name, email, and password. Implement JavaScript validation to ensure the fields are correctly filled out before submission. This a simple code-along project meant to get you started with basic form validation in JS.
Requirements
- HTML Form: Create an HTML form with inputs for name, email, and password.
- CSS Styling: Add basic styling to make the form look clean and user-friendly.
- JavaScript Validation: Implement JavaScript to validate the form fields.
Step-by-Step Instructions
Step 1: Set Up the HTML Structure
-
Create a New HTML File
- Create a new file named
index.html
.
- Create a new file named
-
Add the HTML Boilerplate
- Add the basic HTML boilerplate to your file:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Form Validation</title> <link rel="stylesheet" href="styles.css"> </head> <body> <form id="registrationForm"> <h2>Registration Form</h2> <div> <label for="name">Name:</label> <input type="text" id="name" name="name"> <span id="nameError" class="error"></span> </div> <div> <label for="email">Email:</label> <input type="email" id="email" name="email"> <span id="emailError" class="error"></span> </div> <div> <label for="password">Password:</label> <input type="password" id="password" name="password"> <span id="passwordError" class="error"></span> </div> <button type="submit">Register</button> </form> <script src="script.js"></script> </body> </html>
-
Add the Form Elements
- Ensure your form includes fields for name, email, and password, each with a corresponding error message span.
Step 2: Add Basic CSS Styling
-
Create a New CSS File
- Create a new file named
styles.css
.
- Create a new file named
-
Add Basic Styles
- Add basic styles to make the form look clean and user-friendly:
body { font-family: Arial, sans-serif; display: flex; justify-content: center; align-items: center; height: 100vh; background-color: #f4f4f4; margin: 0; } form { background: #fff; padding: 20px; border-radius: 8px; box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); max-width: 400px; width: 100%; } div { margin-bottom: 15px; } label { display: block; margin-bottom: 5px; } input { width: 100%; padding: 8px; box-sizing: border-box; } .error { color: red; font-size: 12px; } button { background-color: #007BFF; color: #fff; padding: 10px; border: none; border-radius: 5px; cursor: pointer; } button:hover { background-color: #0056b3; }
Step 3: Implement JavaScript Validation
-
Create a New JavaScript File
- Create a new file named
script.js
.
- Create a new file named
-
Add Event Listener to Form
- Add an event listener to the form to handle form submission:
document.getElementById('registrationForm').addEventListener('submit', function(event) { event.preventDefault(); validateForm(); });
-
Create the Validation Function
- Add a function to validate the form fields:
function validateForm() { // Clear previous error messages document.getElementById('nameError').innerText = ''; document.getElementById('emailError').innerText = ''; document.getElementById('passwordError').innerText = ''; // Get form values const name = document.getElementById('name').value; const email = document.getElementById('email').value; const password = document.getElementById('password').value; // Validation flags let isValid = true; // Validate name if (name.trim() === '') { document.getElementById('nameError').innerText = 'Name is required'; isValid = false; } // Validate email if (email.trim() === '') { document.getElementById('emailError').innerText = 'Email is required'; isValid = false; } else if (!validateEmail(email)) { document.getElementById('emailError').innerText = 'Email is not valid'; isValid = false; } // Validate password if (password.trim() === '') { document.getElementById('passwordError').innerText = 'Password is required'; isValid = false; } else if (password.length < 6) { document.getElementById('passwordError').innerText = 'Password must be at least 6 characters'; isValid = false; } // If all fields are valid, submit the form (for demonstration, we'll just alert a message) if (isValid) { alert('Form submitted successfully!'); } } // Email validation function function validateEmail(email) { const re = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; return re.test(String(email).toLowerCase()); }
Step 4: Test the Form
-
Open
index.html
in a Browser- Open your HTML file in a web browser to test the form validation.
- Try submitting the form with different inputs to ensure the validation works as expected.
Feel free to play around with the code and express your creativity.
Happy coding!
💖 💪 🙅 🚩
Nwafor Onyebuchi
Posted on August 5, 2024
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.