Convalida della password JQuery Ajax
-
23-09-2019 - |
Domanda
Voglio implementare una funzionalità di modifica della password dell'utente. È fondamentalmente una forma con tre campi. Gli ID dei tre input sono oldpassword
, newPassword
e newPasswordAgain
.
Quando l'utente ha perso il focus dell'ingresso di OldPassword o inviare il modulo, voglio verificare contro il database, per vedere se OldPassword è inserito correttamente. Come posso raggiungere questo obiettivo usando la convalida jQuery?
Aggiungo una regola personalizzata come questa:
$.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!");
Ma il problema è che, prima che il mio metodo post restituisca un flag di risultato, il metodo è già finito, quindi ricevo sempre il messaggio di errore. So che la validazione di jQuery ha un metodo remoto, ma non posso usarlo, perché sto usando il plug-in Struts2-JSON, il mio risultato JSON si incapsula sempre in un oggetto e il metodo remoto ha bisogno di un risultato booleano JSON. Non riesco a ottenere direttamente vero o falso dal risultato.
Soluzione
Puoi usare l'uso $.ajax
e impostare async:false
: http://api.jquery.com/jquery.ajax/
Questo aspetterà il completamento della chiamata, bloccando la tua pagina.
Detto questo, non sono sicuro che tu possa usare JavaScript per convalidare una password. Questo è qualcosa che in genere vuoi fare sul server e ha comunque zero sicurezza.