Question

Je souhaite implémenter une fonctionnalité de modification du mot de passe de l'utilisateur. C'est essentiellement une forme avec trois champs. Les ID des trois entrées sont oldpassword, newPassword et newPasswordAgain .

Lorsque l'utilisateur a perdu la mise au point de l'entrée OldPassword ou soumet le formulaire, je souhaite vérifier par rapport à la base de données, pour voir si le OldPassword est correctement entré. Comment puis-je y parvenir en utilisant la validation jQuery?

J'ajoute une règle personnalisée comme ceci:

            $.validator.addMethod("checkOldPass",function (value ,element) {
            var validPass = false ;
            $.post("/SMS/admin/users/checkOldPass.do" , {"empId":empId , "oldEmpPass":$.md5(value)},function (data) {
                    var msg = eval('('+data+')');
                    if(msg.resultFlag == 1) {
                        validPass = true ;

                    }
                });
              return validPass ;
            } , "error!");

Mais le problème est que, avant que ma méthode de poste renvoie un indicateur de résultat, la méthode déjà terminée, donc j'obtiens toujours le message d'erreur. Je sais que la validation JQuery a une méthode distante, mais je ne peux pas l'utiliser, car j'utilise le plugin Struts2-json, mon résultat JSON encapsule toujours dans un objet et la méthode distante a besoin d'un résultat JSON booléen. Je ne peux pas devenir directement réel ou faux à partir du résultat.

Était-ce utile?

La solution

Vous pouvez utiliser l'utilisation $.ajax Et mettre async:false: http://api.jquery.com/jquery.ajax/
Cela attendra que l'appel se termine, bloquant votre page.

Cela dit, je ne suis pas sûr que vous devriez utiliser JavaScript pour valider un mot de passe. C'est quelque chose que vous voulez généralement faire sur le serveur, et il n'a de toute façon aucune sécurité.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top