Pregunta

Quiero implementar una funcionalidad de cambiar la contraseña del usuario. Básicamente es una forma con tres campos. Los ID de las tres entradas son oldpassword, newPassword y newPasswordAgain .

Cuando el usuario perdió el enfoque de la entrada OldPassword o envíe el formulario, quiero verificar con la base de datos, para ver si OldPassword se ingresa correctamente. ¿Cómo puedo lograr esto usando la validación de jQuery?

Agrego una regla 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!");

Pero el problema es que, antes de que mi método de publicación devuelva un indicador de resultados, el método ya terminado, por lo que siempre recibo el mensaje de error. Sé que la validación de jQuery tiene un método remoto, pero no puedo usarlo, porque estoy usando el complemento Struts2-JSON, mi resultado JSON siempre encapsula en un objeto y el método remoto necesita un resultado JSON booleano. No puedo obtener directamente verdadero o falso del resultado.

¿Fue útil?

Solución

Puedes usar $.ajax y establecer async:false: http://api.jquery.com/jquery.ajax/
Esto esperará a que se complete la llamada, bloqueando su página.

Dicho esto, no estoy seguro de que use JavaScript para validar una contraseña. Esto es algo que normalmente desea hacer en el servidor, y tiene cero seguridad de todos modos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top