27 votes

Comment concentrer les champs invalides avec jQuery valider?

Il est focusInvalid option, qui est - true par défaut. Mais il ne fonctionne que lorsque le formulaire de soumission. Si je valide le formulaire avec valid méthode, alors il ne fonctionne pas. Donc, la question est de savoir comment se concentrer champ non valide lors de l' valid est-il utilisé?

Veuillez voir cette démo pour voir la différence. Appuyez simplement sur les boutons là.

30voto

James Johnson Points 29414

Avec invalidHandler vous pouvez définir le focus sur le premier élément qui échoue:

 $("#form").validate({
    onfocusout: false,
    invalidHandler: function(form, validator) {
        var errors = validator.numberOfInvalids();
        if (errors) {                    
            validator.errorList[0].element.focus();
        }
    } 
});
 

24voto

Rory McCrossan Points 69838

Tout d'abord, vous devez enregistrer votre validateur dans une variable afin de pouvoir l'utiliser dans le gestionnaire de clics:

 var validator = $("#test-form").validate({ /* settings */ });
 

Ensuite, dans le gestionnaire de validation, vous pouvez appeler manuellement la fonction focusInvalid partir de la variable validator :

   $("#validate").click(function() {
        if ($("#test-form").valid()) 
              alert("Valid!");
        else
              validator.focusInvalid();

        return false;
  });
 

Exemple

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X