//
const form = document.querySelector('#form');
const username = document.querySelector('#username');
const email = document.querySelector('#email');
const password = document.querySelector('#password');
const cpassword = document.querySelector('#cpassword');
const mobno = document.querySelector('#mobile');
const dob = document.querySelector('#dob');
form.addEventListener('submit', (e) => {
if (!validateInputs()) {
e.preventDefault();
}
});
// Attach input event listeners
username.addEventListener('input', () => validateInput(username, 'Username is required'));
email.addEventListener('input', () => validateInput(email, 'Email is required', validateEmail));
password.addEventListener('input', () => validateInput(password, 'Password is required', null, 8));
cpassword.addEventListener('input', () => validateInput(cpassword, 'Confirm password is required', null, null, password));
mobno.addEventListener('input', () => validateInput(mobno, 'Mobile no is required', validateMobile));
dob.addEventListener('input', () => validateInput(dob, 'DOB is required'));
function validateInputs() {
let success = true;
success = validateInput(username, 'Username is required') && success;
success = validateInput(email, 'Email is required', validateEmail) && success;
success = validateInput(password, 'Password is required', null, 8) && success;
success = validateInput(cpassword, 'Confirm password is required', null, null, password) && success;
success = validateInput(mobno, 'Mobile no is required', validateMobile) && success;
success = validateInput(dob, 'DOB is required') && success;
return success;
}
function validateInput(element, errorMessage, validationFunction, minLength, compareTo) {
const value = element.value.trim();
const inputGroup = element.parentElement;
const errorElement = inputGroup.querySelector('.error');
let isValid = true;
if (value === '') {
isValid = false;
} else if (validationFunction && !validationFunction(value)) {
isValid = false;
} else if (minLength && value.length < minLength) {
isValid = false;
} else if (compareTo && value !== compareTo.value) {
isValid = false;
}
if (!isValid) {
setError(element, errorMessage);
} else {
setSuccess(element);
}
return isValid;
}
function setError(element, message) {
const inputGroup = element.parentElement;
const errorElement = inputGroup.querySelector('.error');
errorElement.innerText = message;
inputGroup.classList.add('error');
inputGroup.classList.remove('success');
}
function setSuccess(element) {
const inputGroup = element.parentElement;
const errorElement = inputGroup.querySelector('.error');
errorElement.innerText = '';
inputGroup.classList.add('success');
inputGroup.classList.remove('error');
}
const validateEmail = (email) => {
return String(email)
.toLowerCase()
.match(
/^(([^<>()[\]\\.,;:\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,}))$/
);
};
const validateMobile = (mobile) => {
return mobile.length === 10 && /^\d+$/.test(mobile);
};
==or===), not assignment (=).