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

Есть ли какое-либо событие, возникшее до проверки полей в форме HTML5 и до отправки этой формы?

AFAIK, событие submit возникает непосредственно перед отправкой формы, но после шага проверки, так что это срабатывает слишком поздно для меня.

Обновление : У меня есть текстовая область со свойством required, и если у пользователя есть JS, я хочу заменить его редактором HTML. HTML-редактор синхронизирует свое содержимое с текстовой областью при отправке (после шага проверки), поэтому для браузера текстовая область всегда пуста. Вот почему я прошу о событии, инициированном перед проверкой. Любой другой ответ, который решит эту проблему, будет принят.

1 Ответ

8 голосов
/ 30 июля 2011

Нет, событие не возникает до того, как произойдет проверка. Существует только событие invalid, которое вызывается после проверки недопустимого поля, но перед отображением пользовательского интерфейса проверки (предотвращение использования по умолчанию предотвращает отображение пользовательского интерфейса проверки браузера).

Если вы хотите синхронизировать два поля, вы должны использовать два события. Первый - DOMContentReady, а второй - событие change.

Дополнительная информация: если вы скрываете недопустимый элемент поля, браузер не сможет показать пользователю сообщение проверки. Вы можете обойти это с помощью следующего кода (обратите внимание, что предполагается, что вы используете jQuery 1.6x и специальную структуру):

$('textarea.wysiwyg').bind('invalid', function(e){
    //remove validation bubble
    e.preventDefault();
    //implement your own validation UI
    $(this).next('div.wysiwyg').after('<p class="error">'+ $.prop(this, 'validationMessage') +'</p>');
});
...