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.

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top