Frage

Ich möchte eine Funktionalität des Kennworts des Benutzers implementieren. Es ist im Grunde eine Form mit drei Feldern. Die IDs der drei Eingaben sind oldpassword, newPassword und newPasswordAgain .

Wenn der Benutzer den Fokus der OldPassword -Eingabe verlor oder das Formular senden, möchte ich die Datenbank überprüfen, um festzustellen, ob das OldPassword korrekt eingegeben wird. Wie kann ich dies durch JQuery -Validierung erreichen?

Ich füge eine benutzerdefinierte Regel wie diese hinzu:

            $.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!");

Das Problem ist jedoch, bevor meine Post -Methode ein Ergebnisflag zurückgibt, die bereits abgeschlossene Methode, sodass ich immer die Fehlermeldung erhalte. Ich weiß, dass JQuery-Validierung eine Remote-Methode hat, aber ich kann sie nicht verwenden, da ich Struts2-Json-Plugin verwende, mein JSON-Ergebnis immer in einem Objekt einkapselt und eine Remote-Methode ein boolesches JSON-Ergebnis benötigt. Ich kann aus dem Ergebnis nicht direkt oder falsch werden.

War es hilfreich?

Lösung

Sie können die Verwendung verwenden $.ajax und set async:false: http://api.jquery.com/jquery.ajax/
Dies wartet, bis der Anruf abgeschlossen ist und Ihre Seite blockiert.

Ich bin mir jedoch nicht sicher, ob Sie JavaScript verwenden sollten, um ein Passwort zu validieren. Dies ist etwas, was Sie normalerweise auf dem Server tun möchten, und es hat ohnehin keine Sicherheit.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top