Задать вопрос
@Magic6200

Как провести валидацию формы во время заполнения полей?

Как поправить код, чтобы во время заполнения полей формы происходила проверка сразу же, а при нажатии на кнопку "Отправить" ничего не происходило пока не будут заполнены верно все поля?
Также, чтобы ничего не происходило, если поля пусты изначально.
  • Вопрос задан
  • 246 просмотров
Подписаться 2 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик расширенный
    13 месяцев
    Далее
  • Skillbox
    JavaScript
    3 месяца
    Далее
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
const regex = {
  name: /^[a-z]{2,16}$/i,
  message: /^[a-z]{15,100}$/i,
};

const validateInput = input => $(input)
  .closest('.form-group')
  .removeClass('has-success has-error')
  .addClass(regex[input.id].test(input.value) ? 'has-success' : 'has-error')
  .hasClass('has-success');

$('form').on('input submit', function(e) {
  const isSubmit = e.type === 'submit';
  const isErrors = (isSubmit ? [...$('.form-control', this)] : [ e.target ])
    .map(n => !validateInput(n))
    .some(Boolean);

  if (isErrors && isSubmit) {
    e.preventDefault();
  }
});
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Exploding
@Exploding
wtf?
Что ж вы все с этой валидацией то!)) Не внимательно читали инфу по html5 валидации форм?
Есть же всё уже: required, pattern. Что еще не хватает?))
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы