Validação de senha do jQuery Ajax
-
23-09-2019 - |
Pergunta
Quero implementar uma funcionalidade de alterar a senha do usuário. É basicamente uma forma com três campos. Os IDs das três entradas são oldpassword
, newPassword
e newPasswordAgain
.
Quando o usuário perdeu o foco da entrada do OldPassword ou envie o formulário, quero verificar no banco de dados, para verificar se o OldPassword foi inserido corretamente. Como posso conseguir isso usando a validação do jQuery?
Eu adiciono uma regra personalizada como esta:
$.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!");
Mas o problema é que, antes que meu método de postagem retorne um sinalizador de resultado, o método já terminado, então eu sempre recebo a mensagem de erro. Sei que a validação do jQuery tem um método remoto, mas não posso usá-lo, porque estou usando o plugin STRUTS2-json, meu resultado JSON sempre encapsula em um objeto e o método remoto precisa de um resultado de JSON booleano. Não posso ficar diretamente verdadeiro ou falso do resultado.
Solução
Você pode usar o uso $.ajax
E definir async:false
: http://api.jquery.com/jquery.ajax/
Isso aguardará a chamada concluir, bloqueando sua página.
Dito isto, não tenho certeza se você poderia usar o JavaScript para validar uma senha. Isso é algo que você normalmente deseja fazer no servidor e tem segurança zero de qualquer maneira.