@Black_Fire

Как провалидировать форму в которой несколько инпутов и селектов?

Нужно, чтобы если все инпуты не пустые и у селектов выбран любой пункт, кроме первого - у кнопки убирался атрибут disabled, а иначе добавлялся. То есть, надо чтобы кнопка активировалась при заполненной форме.
<div class="container">
    <form class="d-flex flex-column" action="">
      <input class="my-3" type="text">
      <input class="my-3" type="text">
      <input class="my-3" type="text">
      <select class="my-3">
          <option value="1">1</option>
          <option value="2">3</option>
          <option value="3">3</option>
      </select>
      <select class="my-3">
          <option value="1">1</option>
          <option value="2">2</option>
          <option value="3">3</option>
      </select>
      <select class="my-3">
          <option value="1">1</option>
          <option value="2">2</option>
          <option value="3">3</option>
      </select>
  </form>
    <div class="mt-3 disabled">Submit</div>
  </div>
  • Вопрос задан
  • 181 просмотр
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
document.querySelector('form').addEventListener('input', e => {
  document.querySelector('button').disabled = ![
    [  'input', el => el.value         ],
    [ 'select', el => el.selectedIndex ],
  ].every(([ selector, validator ]) => {
    return [...e.currentTarget.querySelectorAll(selector)].every(validator);
  });
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы