jQuery не показывает «Пожалуйста, заполните это поле»

#jquery #html #validation #input

#jquery #HTML #проверка #ввод

Вопрос:

У меня есть форма, в которой есть несколько обязательных полей. Кнопка отправки имеет идентификатор add .

Я хочу сделать так, чтобы, если форма действительна, она запускала вызываемую функцию stopNavigate()

Итак, в моем коде у меня есть:

 $("#add").on('click', function(){
    if($('form').first().valid()){
        stopNavigate();
    }
});
  

Однако, когда я делаю это, я больше не получаю всплывающую подсказку «Пожалуйста, заполните это поле» в поле ввода. Есть ли способ проверить это?

Вот пример jsFiddle.

Желаемый результат введите описание изображения здесьдля неверного ввода

Однако, когда я нажимаю кнопку отправки, средство проверки jQuery пытается перехватить управление с сообщением об ошибке. Есть ли способ по-прежнему отображать всплывающую подсказку о проверке собственного HTML5?

Комментарии:

1. @cale_b, да, я говорю о собственном обязательном сообщении.

2. @cale_b, я добавил пример MCV.

Ответ №1:

Вы перехватываете кнопку отправки click , которая не позволяет браузеру правильно обрабатывать «обязательные» (и другие) атрибуты для полей формы. Чтобы разрешить браузеру это сделать, вам нужно перехватить submit событие формы:

 $('form').on('submit', function() {
   if($('form').first().valid()){
        stopNavigate();
    }
});
  

Вот обновленная скрипка, демонстрирующая, что вышеуказанное изменение работает в соответствии с запросом.