我想实现更改用户密码的功能。这基本上是一个具有三个字段的表格。三个输入的ID是 oldpassword, newPasswordnewPasswordAgain .

当用户丢失了oldpassword输入的焦点或提交表单时,我想检查数据库,以查看是否正确输入了oldpassword。如何通过使用jQuery验证来实现这一目标?

我添加了这样的自定义规则:

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

但是问题是,在我的帖子方法返回结果标志之前,该方法已经完成,因此我始终收到错误消息。我知道jQuery验证具有远程方法,但是我无法使用它,因为我使用的是struts2-json插件,我的JSON结果始终封装在对象中,而远程方法需要一个boolean json结果。我无法直接从结果中获得真实或错误。

有帮助吗?

解决方案

您可以使用 $.ajax 并设置 async:false: http://api.jquery.com/jquery.ajax/
这将等待通话完成,阻止您的页面。

就是说,我不确定您是否会使用JavaScript来验证密码。这是您通常在服务器上执行的操作,无论如何它的安全性零。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top