@Magic6200

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

Как поправить код, чтобы во время заполнения полей формы происходила проверка сразу же, а при нажатии на кнопку "Отправить" ничего не происходило пока не будут заполнены верно все поля?
Также, чтобы ничего не происходило, если поля пусты изначально.
  • Вопрос задан
  • 231 просмотр
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Выносим код проверки корректности введённых данных в отдельную функцию, дёргаем её при отправке, и по событию input:

function validateInput($input, regex) {
  const result = regex.test($input.val());

  $input
    .closest('.form-group')
    .removeClass('has-success has-error')
    .addClass(result ? 'has-success' : 'has-error');	

  return result;
}

function validate() {
  return [
    validateInput($('#name'), /^[a-z]{2,16}$/i),
    validateInput($('#message'), /^[a-z]{15,100}$/i),
  ].every(Boolean);
}

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

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

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