J'essaie de faire une simple vérification checkvalidité d'un champ de saisie numérique sur flou, mais je ne peux pas le faire fonctionner correctement. Est-ce que cela fonctionne à Chrome? Par exemple:
$("#x")[0].checkValidity()
5 Réponses :
Vous devez utiliser ONCHANGE EVENT
Par exemple P>
var input1 = document.getElementById('txt_username'); input1.onchange = function(){ input1.setCustomValidity(input1.validity.patternMismatch ? 'username must match a-z,A-Z,0-9,4-16 character' : ''); }
Ceci est une démonstration de ce que vous voudrez peut-être vous diriger vers:
Onblur = "CheckValidité ()" code> n'a aucun effet car
flou code> n'est pas annulé. p>
Voici une solution si l'un de vos éléments de formulaire perdez la mise au point, vous vérifiez la validité du formulaire. Si le formulaire n'est pas valide, jQuery Cliquez sur le premier bouton Soumettre. Avoir à utiliser un délai d'attente pour une raison quelconque de la faire fonctionner. Un délai d'attente de zéro déplace simplement la fonction à la fin de la file d'attente des fonctions. P> p>
Je réalise que cette question est plusieurs années d'âge em> à ce stade, mais si quelqu'un d'autre se passe, la bonne façon d'atteindre le comportement que OP souhaitée semble être d'utiliser onblur = " ReportValidité () " code> au lieu de
Onblur =" CheckValidité " code>. P>
Vous méritez une médaille d'or
Vous avez mentionné cela vous-même: "
checkvalidité () code> fait retourne vrai ou faux b>", il semble donc que la méthode renvoie une valeur i> qui indique à votre script Que ce soit valide ou non, au lieu de faire quelque chose (par exemple, utilisateur d'allusion, bloquant l'entrée, etc.). Donc, votre
Onblur code> Le gestionnaire d'événements "fonctionne" "fonctionne", ça ne fait que des choses.
Oui, ça ne lance pas une erreur. Lorsque je soumettez le formulaire, la validation fonctionne et il y a des popups où il y a de mauvaises intrants. Ce sont ce que j'allais pour Onblur ...
Je devinez i> Vous souhaitez déclencher la fenêtre de validation lorsque l'utilisateur "finit" une entrée? Ce n'est pas possible, car le comportement du navigateur n'est pas une spécification HTML. Vous pouvez utiliser
si (! Obj.checkvalidity ()) {...} code> en quelque sorte "émuler" le comportement.
Ouais, c'est un peu ce que je vais pour ici. Une fois que l'utilisateur entrait un numéro non valide dans le champ ci-dessus et claqué dans le champ suivant, alertez-les à l'erreur avant de passer à la soumission et peut avoir plusieurs erreurs.
On dirait qu'il n'ya aucun moyen d'obtenir l'action par défaut du navigateur (lorsque la checkvalidité () échoue) pour tirer si vous faites une soumission complète. C'est une sorte de honte.