Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.08.2022, 16:07
Новичок на форуме
Отправить личное сообщение для cheriko Посмотреть профиль Найти все сообщения от cheriko
 
Регистрация: 08.08.2022
Сообщений: 1

Оптимизировать функцию валидации
У меня есть функция валидации, которая добавляет классы элементам массива и селекторам. Вот так:

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');
          }
      })
  });
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передать параметры в функцию для addEventListener Andy_kun Events/DOM/Window 0 05.08.2022 19:16
Как оптимизировать функцию фильтрации? dc65k Элементы интерфейса 12 03.08.2022 21:17
Описать самосоздающуюся функцию ABitOfJS Общие вопросы Javascript 7 31.05.2021 00:13
Получить имя функции внутри функции не используя callee drwhite Общие вопросы Javascript 39 12.02.2020 22:48
Расширение для Safari. Как вызвать функцию из popover в global page? housewm Opera, Safari и др. 0 21.12.2013 06:07