@fsfdg

Как запретить отправку формы, если хотя бы одно поле не заполнено?

ВОТ КОД https://jsfiddle.net/tgdr3nc2/1/

required мне не нужен
  • Вопрос задан
  • 8194 просмотра
Пригласить эксперта
Ответы на вопрос 3
antonov22
@antonov22
PHP - программист.
Вешаешь обработчик на событие sumbit.
Добавляешь evt.preventDefault(), чтобы остановить отправку формы.
Делаешь валидацию и оповещение пользователя (как пример alert).
Отправляешь формы через js (this.submit()).

const form = document.querySelector('#form');
const email = document.querySelector('#email');
const name = document.querySelector('#name');
form.addEventListener('submit', function(evt) {
  evt.preventDefault();
  if(!name.value) {
    alert('Поле имя не заполнено');
    return;
  }
  
  if(!email.value) {
    alert('Поле email не заполнено');
    return;
  }
  
  this.submit();
});
Ответ написан
Комментировать
Kozack
@Kozack Куратор тега JavaScript
Thinking about a11y
Например вот так

Ответ написан
@Karpion
Давно читал, плохо помню.

На кнопку Submit повесить обработчик нажатия. Причём не любого, а именно оправки формы. Обработчик проверяет заполненность полей. Если что-то не так - то он кодом завершения (true или false) запрещает отправку формы. Ну и до завершения - сообщает, что ему не нравится.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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