Jquery ajax密码验证

时间:2010-01-27 09:55:47

标签: jquery ajax validation

我想实现更改用户密码的功能。它基本上是一个有三个字段的表单。三个输入的ID为oldpasswordnewPasswordnewPasswordAgain

当用户失去了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!");

但问题是,在我的post方法返回结果标志之前,该方法已经完成,所以我总是收到错误消息。 我知道jquery验证有一个远程方法,但我不能使用它,因为我使用struts2-json插件,我的json结果总是封装在一个对象中,而远程方法需要一个布尔json结果。我不能直接从结果中得到真或假。

1 个答案:

答案 0 :(得分:1)

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

那就是说,我不确定你是否应该使用JavaScript来验证密码。这是您通常希望在服务器上执行的操作,无论如何都没有安全性。