Как сделать чтобы условие сработывало?
подскажите пожалуйста, не могу найти ошибку свою. Есть проверка на введенные данные в input формы регистрации, надо чтобы после условия, когда введена правильна почта срабатывала return true и дальше срабатывает переход в админку(страница). Сейчас условия работает, но при return true перехода нет. Спасибо заранее.
//email
const submit = document.querySelector('.modal-cover__btn');
const form = document.querySelector('.modal-form');
const pattern = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
form.addEventListener('submit', (event) => {
event.preventDefault();
let email = document.querySelector('.modal-cover__email');
let email_value = document.querySelector('.modal-cover__email').value;
if (email_value.match(pattern)) {
email.classList.remove('valid');
alert('You have entered an invalid email address!');
return true;
} else {
email.classList.add('valid');
alert('Bad email');
return false;
}
});
Ответы (1 шт):
Автор решения: Алексей Шиманский
→ Ссылка
Если под "переход в админку" имеется в виду, что должен submit всё же сработать, тогда надо event.preventDefault(); переместить в условие, когда email неправильный, а return true; и return false; удалить за ненадобностью
Кстати, при таком варианте и строки
email.classList.remove('valid');
alert('You have entered an invalid email address!');
не нужны. Всё равно страница будет перезагружаться. Можно будет упростить:
if (!email_value.match(pattern)) {
event.preventDefault();
email.classList.add('valid');
alert('Bad email');
}