из спецификации:
Если пользователь нажимает кнопку отправки. Браузер должен сначала проверить форму, и если форма действительна, происходит событие отправки.
Это означает, что вы можете просто подключиться к событию отправки формы и запустить свой ajax.
$('form').bind('submit', function(){
//Ajax implementation here
});
Но у Opera очень неприятная ошибка. Opera сначала запускает событие submit, а затем проверяет форму.
Вы можете обойти это, используя методы проверки HTML5. Это будет выглядеть так:
$('form').bind('submit', function(){
if(!this.checkValidity || this.checkValidity()){
//Ajax implementation here
}
});
О текущем состоянии спецификации формы HTML5. Есть несколько частей, которые должны расширить форму спецификации. Функции, которые в настоящее время реализованы в FF4 и других (FF4 имеет меньше формальных функций, чем Opera и Chrome, но очень хорошая реализация), достаточно стабильны для производства.
Если вы хотите использовать формы HTML5 во всех браузерах, я бы предложил веб-форму HTML5 polyfill . Он не только заполняет неиспользуемые браузеры, но и исправляет некоторые ошибки в браузерах, которые не реализовали функцию формы в соответствии со спецификацией. Например, ошибка Opera, упомянутая выше, будет автоматически исправлена.