Hello friend, I hope you are doing and creating creative pieces of stuff. Today in this blog, you will learn How to Validate Email & Password in HTML CSS JavaScript. Although, I have a separate blog about Email Validation, Password Validation, and Password Show Hide, this time I’m going to add all these sections in one form.
Email and Password Validation means the process of verifying the email address and the strength of the password the user has input. And, the password show hide means showing and hiding the password while clicking on the icon for security purposes.
Have a quick look at the given image of our project Email and Password Validation. On the left side form, you can see three input blank input fields and one button. On another right-side form, you can see I have filled in some invalid data, that’s why there is some red-colored text with an error message.
Actually when we put inaccurate data on the input field or directly click on the button then those errors appear with an error message. On the password field, on the right side, we can see the eye icon. When we click on the icon, it helps us to show the characters that we filled. The confirm password field will check the created password and the confirmed password is matching or not.
Rather than theoretically, I would highly recommend you to watch the given video tutorial of our project [How to Validate Email & Password in HTML CSS JavaScript], in that video, I have shown a demo of this project and all the HTML CSS & JavaScript code that I have used to validate this email and password and of course password show and hide feature.
Email and Password Validation in HTML CSS & JavaScript
I have provided all the HTML CSS & JavaScript code that I have used to Validate Email, Password, and Show/Hide passwords. Before getting into the source code file, Let me explain the given video tutorial on this form validation briefly.
As you have seen in the video tutorial. At first, there was a signup form with three empty input fields and a button. When I clicked on the button without filling in the required date, a red error message appeared. After that when I started to enter my valid data the error message disappeared. Also, we could show and hide passwords by clicking on the eye icon. The email required proper valid email formation and the create password field needs the combination of numbers, special symbols, capital, and small letter. Basically, we need not put eight characters by mixing all those characters.
To make this sign-up form I have used HTML and CSS to validate the form and to show and hide the password, I have used some JavaScript code.
I accept, now you can create this type of form and validate email and password using HTML CSS and JavaScript, and also show and hide passwords while clicking on the eye icon with changing icon. If you are feeling complicated, I have provided all the HTML CSS and JavaScript code below.
You Might Like This:
Email & Password Validation [Source Code]
<!DOCTYPE html> <!-- Coding By CodingNepal - codingnepalweb.com --> <html lang="en"> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Email and Password Validation</title> <!-- CSS --> <link rel="stylesheet" href="css/style.css" /> <!-- Boxicons CSS --> <link href="https://unpkg.com/boxicons@2.1.2/css/boxicons.min.css" rel="stylesheet" /> </head> <body> <div class="container"> <header>Signup</header> <form action="https://www.codinglabweb.com/"> <div class="field email-field"> <div class="input-field"> <input type="email" placeholder="Enter your email" class="email" /> </div> <span class="error email-error"> <i class="bx bx-error-circle error-icon"></i> <p class="error-text">Please enter a valid email</p> </span> </div> <div class="field create-password"> <div class="input-field"> <input type="password" placeholder="Create password" class="password" /> <i class="bx bx-hide show-hide"></i> </div> <span class="error password-error"> <i class="bx bx-error-circle error-icon"></i> <p class="error-text"> Please enter atleast 8 charatcer with number, symbol, small and capital letter. </p> </span> </div> <div class="field confirm-password"> <div class="input-field"> <input type="password" placeholder="Confirm password" class="cPassword" /> <i class="bx bx-hide show-hide"></i> </div> <span class="error cPassword-error"> <i class="bx bx-error-circle error-icon"></i> <p class="error-text">Password don't match</p> </span> </div> <div class="input-field button"> <input type="submit" value="Submit Now" /> </div> </form> </div> <!-- JavaScript --> <script src="js/script.js"></script> </body> </html>
/* Google Fonts - Poppins */ @import url("https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600&display=swap"); * { margin: 0; padding: 0; box-sizing: border-box; font-family: "Poppins", sans-serif; } body { min-height: 100vh; display: flex; align-items: center; justify-content: center; background: #4070f4; } .container { position: relative; max-width: 370px; width: 100%; padding: 25px; border-radius: 8px; background-color: #fff; } .container header { font-size: 22px; font-weight: 600; color: #333; } .container form { margin-top: 30px; } form .field { margin-bottom: 20px; } form .input-field { position: relative; height: 55px; width: 100%; } .input-field input { height: 100%; width: 100%; outline: none; border: none; border-radius: 8px; padding: 0 15px; border: 1px solid #d1d1d1; } .invalid input { border-color: #d93025; } .input-field .show-hide { position: absolute; right: 13px; top: 50%; transform: translateY(-50%); font-size: 18px; color: #919191; cursor: pointer; padding: 3px; } .field .error { display: flex; align-items: center; margin-top: 6px; color: #d93025; font-size: 13px; display: none; } .invalid .error { display: flex; } .error .error-icon { margin-right: 6px; font-size: 15px; } .create-password .error { align-items: flex-start; } .create-password .error-icon { margin-top: 4px; } .button { margin: 25px 0 6px; } .button input { color: #fff; font-size: 16px; font-weight: 400; background-color: #4070f4; cursor: pointer; transition: all 0.3s ease; } .button input:hover { background-color: #0e4bf1; }
const form = document.querySelector("form"), emailField = form.querySelector(".email-field"), emailInput = emailField.querySelector(".email"), passField = form.querySelector(".create-password"), passInput = passField.querySelector(".password"), cPassField = form.querySelector(".confirm-password"), cPassInput = cPassField.querySelector(".cPassword"); // Email Validtion function checkEmail() { const emaiPattern = /^[^ ]+@[^ ]+\.[a-z]{2,3}$/; if (!emailInput.value.match(emaiPattern)) { return emailField.classList.add("invalid"); //adding invalid class if email value do not mathced with email pattern } emailField.classList.remove("invalid"); //removing invalid class if email value matched with emaiPattern } // Hide and show password const eyeIcons = document.querySelectorAll(".show-hide"); eyeIcons.forEach((eyeIcon) => { eyeIcon.addEventListener("click", () => { const pInput = eyeIcon.parentElement.querySelector("input"); //getting parent element of eye icon and selecting the password input if (pInput.type === "password") { eyeIcon.classList.replace("bx-hide", "bx-show"); return (pInput.type = "text"); } eyeIcon.classList.replace("bx-show", "bx-hide"); pInput.type = "password"; }); }); // Password Validation function createPass() { const passPattern = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$/; if (!passInput.value.match(passPattern)) { return passField.classList.add("invalid"); //adding invalid class if password input value do not match with passPattern } passField.classList.remove("invalid"); //removing invalid class if password input value matched with passPattern } // Confirm Password Validtion function confirmPass() { if (passInput.value !== cPassInput.value || cPassInput.value === "") { return cPassField.classList.add("invalid"); } cPassField.classList.remove("invalid"); } // Calling Funtion on Form Sumbit form.addEventListener("submit", (e) => { e.preventDefault(); //preventing form submitting checkEmail(); createPass(); confirmPass(); //calling function on key up emailInput.addEventListener("keyup", checkEmail); passInput.addEventListener("keyup", createPass); cPassInput.addEventListener("keyup", confirmPass); if ( !emailField.classList.contains("invalid") && !passField.classList.contains("invalid") && !cPassField.classList.contains("invalid") ) { location.href = form.getAttribute("action"); } });
If you face any difficulties while creating your Form Validation or your code is not working as expected, you can download the source code files for this Email Password Validation for free by clicking on the download button, and you can also view a live demo of this card slider by clicking on the view live button.