Оптимизировать функцию валидации
У меня есть функция валидации, которая добавляет классы элементам массива и селекторам. Вот так:
requiredBoxes.forEach(function (input) { if (requiredCheckedBoxes.length === 0) { input.classList.add('input-error'); } else { input.classList.remove('input-error'); } }); if (!validateEmail(emailInput.value)) { emailInput.classList.add('input-error'); } else { emailInput.classList.remove('input-error'); } if (phoneInput.value.length < 16) { phoneInput.classList.add('input-error'); } else { phoneInput.classList.remove('input-error'); } Мне нужно применять эту функцию в 2-х местах - addEventListener('submit') и addEventListener('blur'). Вопрос: как это все написать без повторений, учитывая, что добавлять-удалять классы нужно как у элементов массива, так и у отдельных селекторов? Я ведь не могу вынести addEventListener за пределы цикла: requiredInputs.forEach(function (input) { input.addEventListener('blur', () => { if (input.value === '') { input.classList.add('input-error'); } else { input.classList.remove('input-error'); } }) }); |
Часовой пояс GMT +3, время: 21:46. |