de la especificación:
Si el usuario pulsa el botón de enviar. El navegador debe validar primero el formulario y si el formulario es válido, se activa el evento de envío.
Esto significa que simplemente puede enganchar en el evento submit del formulario y comenzar su ajax.
$('form').bind('submit', function(){
//Ajax implementation here
});
Pero, Opera tiene un error realmente desagradable aquí. Opera primero activa el evento de envío y luego valida el formulario.
Puede solucionar esto, utilizando los métodos de validación de HTML5. Esto se vería así:
$('form').bind('submit', function(){
if(!this.checkValidity || this.checkValidity()){
//Ajax implementation here
}
});
Acerca del estado actual de la especificación de formulario HTML5. Hay algunas partes que deberían ampliar la especificación del formulario. Las características, que se implementan actualmente en FF4 y otros (FF4 tiene menos características de forma que Opera y Chrome, pero muy buena implementación) son lo suficientemente estables para la producción.
Si desea utilizar formularios HTML5 en todos los navegadores, sugeriría webshims HTML5 forms polyfill. No solo rellena los navegadores incapaces, sino que también soluciona algunos errores en los navegadores, que no han implementado la función de formulario de acuerdo con la especificación. Por ejemplo, el error de Opera mencionado anteriormente será corregido automáticamente.
Acepto, la validación real debe hacerse en el servidor porque no debe confiar en los datos que provienen del cliente. – James