9
votes

HTML5 Chrome CheckValidité OnBlur

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 commentaires

Vous avez mentionné cela vous-même: " checkvalidité () fait retourne vrai ou faux ", il semble donc que la méthode renvoie une valeur 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 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 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 ()) {...} 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.


5 Réponses :


0
votes

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' : ''); 
    }


0 commentaires

6
votes

Ceci est une démonstration de ce que vous voudrez peut-être vous diriger vers:

0 commentaires


-2
votes

Onblur = "CheckValidité ()" n'a aucun effet car flou n'est pas annulé.


0 commentaires

0
votes

Voici une solution xxx

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.


0 commentaires

5
votes

Je réalise que cette question est plusieurs années d'âge à 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é () " au lieu de Onblur =" CheckValidité ".


1 commentaires

Vous méritez une médaille d'or