2011-06-21 20 views
5

yo estaba tratando de averiguar por algún tiempo lo que está sucediendo con mi validación del formulario HTML 5 y me di cuenta de que:HTML5 y validación del formulario mediante programación presentada

  1. cuando envíe el formulario utilizando su botón de envío la validación funciona OK
  2. cuando intenta enviar el formulario de forma programática utilizando la función jQuery submit() se envía y la validación parece no funcionar.
  3. cuando puedo activar el botón de envío del formulario mediante programación, validación funciona

Es consistente en todos los navegadores OSX (FF5, O11, Chr13), pero Safari 5, que en realidad no valida en ninguno de los casos .

Here is the jsFiddle to test.

Cualquier idea de por qué la segunda opción no funciona?

+1

Su '.submit()' en realidad no presentar en su violín, debido a que ha establecido el ID del botón de enviar a 'submit' . http://api.jquery.com/trigger/#comment-134514715 – pimvdb

+0

Además, es posible que desee cambiar la identificación de su entrada de envío a otra cosa además de 'entrada'. – Perception

+0

OK Cambié la identificación del botón de formulario y la identificación del formulario - comportamiento es el mismo – kwicher

Respuesta

1

Parece que el botón de enviar tiene que activarse de alguna manera. Esto no sorprendería, ya que el navegador tampoco activa un evento de cambio, cuando uno cambia el valor de una entrada de texto a través de js.

+0

que he notado :) – kwicher

1

He hecho algunas pruebas, y parece que la forma se valida y se envía desencadenada por el evento click en el primer elemento <input type="submit" /> en la forma.

Absolutamente sucede lo mismo cuando su foco está en el formulario (por ejemplo, en algún elemento de entrada) y presiona enter. Esa es la forma en que los navegadores manejan el envío de formularios y estoy de acuerdo que es un poco extraño.

Parece que puede ejecutar programáticamente la validación de html5 mediante HTML5 Constraint API, pero tenga en cuenta la compatibilidad con el navegador.

Do any browsers yet support HTML5's checkValidity() method?

También hay algunos libraies JavaScript para ayudarle con eso.

Cuestiones relacionadas