2011-06-04 15 views
7

El complemento de validación de jQuery se rompe para los elementos que tienen un tipo de HTML5 definido.Los tipos de entrada HTML5 matan la validación de jQuery

$(document).ready(function(){ 
$("#myform").validate() 
}); 
... 
<form id="myform"> 
<input id="email" email="true" /> 
</form> 
... 

Adición del atributo html5 type = "email" a la entrada hace que la validación falle. Quiero usar type = "email" porque los teléfonos móviles use this attribute to display the proper keyboard layout by default.

¿Cuál es la mejor manera de lograr tanto teclados amigables para teléfonos móviles + biblioteca de validación de jquery?

Puede ver un ejemplo del problema here.

+1

¿Qué porcentaje de tus visitantes esperas estar en dispositivos móviles? Si es significativo, quizás una versión móvil esté en orden. De lo contrario, parece que ha encontrado una limitación con el complemento Validation. – Sparky

+0

Sí, es significativo ... 100%;) –

Respuesta

8

Puede fusionar this pull request con el tronco principal, si está dispuesto a mantener su propia versión del complemento (el parche es bastante pequeño y, desde una mirada superficial at the code, parece lo correcto hacer, aunque ciertamente requeriría pruebas).

También puede recurrir al campo the HTML5 required (potencialmente admitido por clientes no habilitados para javascript), pero vea this issue.

+0

esta es una gran solución. ¡gracias! –

+1

13/01/2013: solo quería agregar para otros que buscan una solución que este problema ya se ha resuelto: el complemento Validar ahora valida correctamente los campos 'type =" email "'. En el momento de tipear, esta versión * 1.11.0pre * del complemento Validate funciona correctamente. Asegúrese de utilizar la [*** última versión del script ***] (https://github.com/jzaefferer/jquery-validation/blob/master/jquery.validate.js) –

+1

Pero todavía no funciona con el tipo "tel". He hecho una donación, espero que puedan solucionar este problema ... – Revious

1

Ese problema ya se ha presentado. Ver este informe de error: http://plugins.jquery.com/content/html-5-typeemail-prevents-inline-validation-required-email-field

Afortunadamente, ahora hay un plugin de jQuery para este trabajo: http://plugins.jquery.com/project/simple_email_validate

espero que ayude. ;)

+0

Ambos enlaces están muertos. – DaveP

+0

Eso es porque es de hace 5 años. Ahora tenemos jQuery Validator para ese propósito. : D: D: D: D: D: D: D –

+0

Gracias por su comentario. Estaba ahorrando tiempo a otras personas. – DaveP

Cuestiones relacionadas