jquery validate: focusCleanup: vrai et focusInvalid: faux ne fonctionnent pas comme prévu
Je suis à l'aide de Joern de plugin jquery validation 1.6.
Mon but est d'avoir le comportement suivant: supprimer le message d'erreur pour un élément une fois que l'utilisateur se concentre. Ce que je comprends de réglage de la "focusCleanup: vrai" devrait s'occuper de cela.
Cependant (au moins sur mon navigateur (Firefox 3.5.7 sur Linux), je seulement obtenir le comportement souhaité (c'est à dire, message d'erreur pour un champ en train de disparaître une fois que vous vous concentrez) si je cliquez sur dans le champ; il ne gère pas les tabulation dans le champ correctement.
Exemple de code:
HTML:
<form id='abc' name='abc'>
<input type="text" id="t1" name="t1"/>
<input type="text" id="t2" name="t2"/>
<input type="submit" id="submit" value='submit'/>
</form>
JS:
$("#abc").validate({
focusCleanup: true,
focusInvalid: false,
rules: {t1: {required: true, email:true}, t2: {required: true,email:true}}
});
Je suis en train de 'focusInvalid: false," parce que les docs disent que l'on devrait éviter de combiner focusCleanup et focusInvalid; dans mon expérience en commentant cette ligne ne fait aucune différence.
Je fais quelque chose de mal?
OriginalL'auteur laramichaels | 2010-01-19
Vous devez vous connecter pour publier un commentaire.
Ce que vous vivez est le comportement correct, juste peut-être un peu contre-intuitif. Vous pouvez voir votre code dans une démo ici. Lorsque vous cliquez, vous êtes seulement concentrant la zone de texte, cependant lors de l'onglet vous êtes à l'origine de 2 événements qui importe, que vous jouiez à la fois
focusin
etkeyup
.Puisque vous êtes le déclenchement de la
keyup
ce qui se passe est-il est de compensation de l'erreur, mais parce que vous êtes en train de saisir quelque chose dans leur boîte (il ne fait pas de distinction onglet à partir de n'importe quelle autre touche, comme une lettre)...mais il est alors ré-évaluer si la case est valable sur tous leskeyup
, affichant la même erreur qu'avant depuis l'onglet n'ont pas d'effet sur ce que...puisqu'il n'a pas ajouter n'importe quel texte.Si vous souhaitez désactiver
onkeyup
de validation, il va arrêter de le faire, comme ceci:Pour comparaison, voici le code à une démo, de sorte que vous pouvez comparer avec l'original de la démo ci-dessus.
keyup
pourchange
afin que la validation peut encore être déclenché lorsque l'utilisateur tape/supprime quelque chose, mais ne sera pas déclenché lorsqu'ils onglet ou appuyez sur haut/bas pour sélectionner les options de saisie semi-automatique?OriginalL'auteur Nick Craver