├── app.js ├── index.html └── style.css /app.js: -------------------------------------------------------------------------------- 1 | const form = document.querySelector('#form') 2 | const username = document.querySelector('#username') 3 | const email = document.querySelector('#email') 4 | const password = document.querySelector('#password') 5 | const cpassword = document.querySelector('#cpassword') 6 | form.addEventListener('submit',(e)=>{ 7 | 8 | if(!validateInputs()) 9 | { 10 | e.preventDefault() 11 | } 12 | }) 13 | 14 | function validateInputs() 15 | { 16 | const usernameVal = username.value.trim() 17 | const emailVal = email.value.trim() 18 | const passwordVal = password.value.trim() 19 | const cpasswordVal = cpassword.value.trim() 20 | let success = true 21 | 22 | if(usernameVal === '') 23 | { 24 | success = false 25 | setError(username,'Username is required') 26 | 27 | } 28 | else{ 29 | setSuccess(username) 30 | } 31 | 32 | if(emailVal === '') 33 | { 34 | success = false 35 | setError(email,'Email is required') 36 | 37 | } 38 | else if(!validateEmail(emailVal)) 39 | { 40 | success = false 41 | setError(email,'Please enter a valid email') 42 | 43 | } 44 | else 45 | { 46 | setSuccess(email) 47 | } 48 | 49 | if(passwordVal === '') 50 | { 51 | success = false 52 | setError(password,'Password is required') 53 | 54 | } 55 | else if(passwordVal.length<8) 56 | { 57 | success = false 58 | setError(password,'Password must be atleast 8 characters long') 59 | 60 | } 61 | else{ 62 | setSuccess(password) 63 | } 64 | 65 | if(cpasswordVal === '') 66 | { 67 | success = false 68 | setError(cpassword,'Confirm password is required') 69 | 70 | } 71 | else if(cpasswordVal!==passwordVal) 72 | { 73 | success = false 74 | setError(cpassword,'Password does not match') 75 | 76 | } 77 | else{ 78 | setSuccess(cpassword) 79 | } 80 | return success 81 | 82 | 83 | } 84 | 85 | function setError(element,message){ 86 | const inputGroup = element.parentElement; 87 | const errorElement = inputGroup.querySelector('.error') 88 | errorElement.innerText = message; 89 | inputGroup.classList.add('error') 90 | inputGroup.classList.remove('success') 91 | } 92 | 93 | function setSuccess(element){ 94 | const inputGroup = element.parentElement; 95 | const errorElement = inputGroup.querySelector('.error') 96 | errorElement.innerText = '' 97 | inputGroup.classList.add('success') 98 | inputGroup.classList.remove('error') 99 | } 100 | 101 | const validateEmail = (email) => { 102 | return String(email) 103 | .toLowerCase() 104 | .match( 105 | /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/) 106 | } -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 | 6 |