Bassistance jQuery form validation plugin – erreur d’email avant la soumission

J’utilise ce plugin: http://bassistance.de/jquery-plugins/jquery-plugin-validation/

Pour la validation du formulaire JQuery. Tout fonctionne très bien sauf le champ email. Dès que je commence à taper dans ce champ, le message “Veuillez saisir une adresse électronique valide.” Le message apparaît alors que ce que j’ai tapé jusqu’à présent est correct.

Dans la documentation ( http://docs.jquery.com/Plugins/Validation ), il est écrit:

“Avant qu’un champ ne soit marqué comme non valide, la validation est fausse: avant de soumettre le formulaire pour la première fois, l’utilisateur peut parcourir les champs sans recevoir de messages gênants – il ne sera pas bogué avant d’avoir eu la possibilité valeur”

Mais cela ne semble pas arriver pour le champ email.

Ce problème peut également être vu dans la démo de l’auteur: http://jquery.bassistance.de/validate/demo/

Existe-t-il une option / solution de contournement pour ce comportement?

“Avant qu’un champ ne soit marqué comme non valide, la validation est fausse: avant de soumettre le formulaire pour la première fois, l’utilisateur peut parcourir les champs sans recevoir de messages gênants – il ne sera pas bogué avant d’avoir eu la possibilité de saisir valeur”

Mais cela ne semble pas arriver pour le champ email.

Ce n’est pas seulement avec la règle de l’ email . Vous pouvez voir le même comportement sur la règle minlength .

http://jsfiddle.net/f3sxF/

Existe-t-il une option / solution de contournement pour ce comportement?

Vous pouvez utiliser la version préliminaire qui semble résoudre ce problème. Cependant, plutôt que de risquer de nouveaux bogues en utilisant une version “préliminaire” du plug-in sur votre site de production, vous pouvez simplement utiliser une version modifiée de la fonction de rappel onkeyup

 $('#myform').validate({ onkeyup: function (element, event) { if (event.which === 9 && this.elementValue(element) === '') { return; } else if (element.name in this.submitted ) { this.element(element); } }, // your other options }); 

En utilisant ce qui précède, toute la validation onkeyup est ignorée jusqu’à ce que le formulaire soit soumis pour la première fois ou jusqu’à ce que l’utilisateur quitte le champ contenant les données saisies.

Démo: http://jsfiddle.net/wNj4n/

Ce comportement est corrigé dans le dernier fichier jquery-validate.js sur github . Le bogue a été signalé comme

“La validation par e-mail se déclenche immédiatement lorsque le texte est dans le champ”

rapport de bug et discussion ici