Не работает код валидации на 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, время: 23:54. |