2011-05-06 19 views
5

Tengo algunos problemas para enviar un formulario con ajax.¿Presentar un formulario HTML 5 con AJAX?

Dado que el formulario HTML5 ya tiene la validación "requerida" dentro de la etiqueta de entrada, no hay necesidad de comprobar la validación de JavaScript. Sin embargo, debido a eso, no sé cómo usar javascript (jQUERY) para enviar un formulario DESPUÉS de que se hayan pasado las verificaciones de validación. En otras palabras, ¿cómo sé si las verificaciones de validación han pasado o no?

e.g: ?? condition ?? (¿Qué condición debo poner antes de cargar la página enviada)? ("div"). Load (finishSubmittingForm.html) )};

¿Alguna idea?

Gracias

Respuesta

3

Existen algunos métodos de API disponibles. Ver developer.mozilla.org.

Sin embargo, le recomiendo que piense detenidamente antes de confiar en la validación de HTML5. Definitivamente tiene algunos inconvenientes importantes en este punto en el tiempo, ya que todavía está "en su infancia". Diría que, por ahora, sería mejor utilizar una biblioteca de validación de JS; jQuery Validation es excelente.

+0

Acepto, la validación real debe hacerse en el servidor porque no debe confiar en los datos que provienen del cliente. – James

2

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.

Cuestiones relacionadas