HTML5 и проверка программно представленной формы - PullRequest
5 голосов
/ 21 июня 2011

Я некоторое время пытался выяснить, что происходит с моей проверкой формы HTML5, и заметил, что:

  1. когда я отправляю форму с помощью кнопки отправки, проверка работает ОК
  2. при попытке отправить форму программно с помощью функции jQuery submit () она отправляется, и проверка не работает.
  3. когда я запускаю кнопку отправки формы программно, проверка работает

Он совместим во всех браузерах OSX (FF5, O11, Chr13), кроме Safari 5, который фактически не проверяется ни в одном из случаев.

Вот jsFiddle для проверки.

Есть идеи, почему не работает второй вариант?

Ответы [ 2 ]

1 голос
/ 27 ноября 2012

Я провел несколько тестов, и кажется, что форма проверена и отправлена, инициированная событием click первого элемента <input type="submit" /> в форме.

Абсолютно то же самое происходит, когда ваш фокус находится в форме (например, в каком-то элементе ввода) и вы нажимаете enter. Именно так браузеры обрабатывают отправку форм, и я согласен, что это немного странно.

Кажется, что вы можете программно запустить проверку html5 с помощью HTML5 Constraint API, но помните о поддержке браузера.

Поддерживают ли какие-либо браузеры метод checkValidity () в HTML5?

Также есть несколько библиотек JavaScript, которые помогут вам в этом.

1 голос
/ 21 июня 2011

Похоже, кнопка отправки должна как-то срабатывать.Это не удивительно, поскольку браузер также не запускает событие изменения, когда изменяется значение текстового ввода с помощью js.

...