Не работает код валидации на JS
Ребят, только новичок в теме разработки, помогите найти ошибку в коде, целый день потратил на это, будут полезны любые советы.
p.s консоль выдает ошибки на: 59, 30, 10 строке кода
"use strict"
document.addEventListener('DOMContentLoaded', function () {
const form = document.getElementById('form');
form.addEventListener('submit', formSend);
async function formSend(e) {
e.preventDefault();
const error = formValidate(form);
if (error === 0) {
} else {
alert('Заполните обязательные поля');
}
}
function formValidate(form) {
let error = 0;
let formReq = document.querySelectorAll('._zxc');
for (let index = 0; index < formReq.length; index++) {
const input = formReq[index];
formRemoveError(input);
if (input.classList.contains('_email')) {
if (emailTest(input)) {
formAddError(input);
error++;
}
} else if (input.getAttribute("type") === 'checkbox' && input.checkbox === false) {
formAddError(input)
error++;
} else {
if (input.value === '') {
formAddError(input);
error++;
}
}
}
return error;
}
function formAddError(input) {
input.parentElement.classList.add('_error');
input.classList.add('_error');
}
function formRemoveError(input) {
input.parentElement.classList.remove('_error');
input.classList.remove('_error');
}
//Функция проверки E-mail
function emailTest(input) {
const re = !/^\w+([\.-]?\w+)*@\w+)[\.-]?\w+)*(\.\w{2,8})+$/
return re.test(input.value);
}
});
|
Qsnakes,
строка 59 странный RegExp, про остальное можно только гадать без макета. |
рони,
Прошу прощения что сразу не предоставил https://jsfiddle.net/5g30tzsf/ |
Qsnakes,
исправьте строку 59 и связанную с ней строку 30 -- других ошибок не вижу. |
рони,
Спасибо огромное, займусь этим |
Qsnakes,
заменить соответствующую функцию, в дальнейшем можно уточнить RegExp, если эта версия не устроит.
//Функция проверки E-mail
function emailTest(input) {
const re = /^\w+([\.-]?\w+)*@(\w+[\.-]?\w+)*(\.\w{2,8})+$/
return !re.test(input.value);
}
|
рони,
О господи не знаю как вас отблагодарить, действительно все заработало, а не подскажите где можно прочитать про этот восклицательный знак и как он все починил? |
Цитата:
с таким же успехом восклицательный знак можно перенести в строку 30 if (!emailTest(input)) из return emailTest. весь вопрос? что должна вернуть функция true или false, это значение можно изменить на любой стадии. объяснил как мог))) |
рони,
Спасибо еще раз, за статью отдельное спасибо, очень помогли |
| Часовой пояс GMT +3, время: 20:30. |