2010-01-27 110 views
2

我想实现更改用户密码的功能。它基本上是一个有三个领域的形式。三个输入的ID是oldpassword,newPasswordnewPasswordAgainJquery ajax密码验证

当用户失去了旧密码输入或提交表单的焦点时,我想检查数据库,看看是否正确输入了旧密码。 如何通过使用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结果总是封装在一个对象中,而远程方法需要一个布尔json结果。我不能直接从结果中得出真假。

回答

1

您可以根据$.ajax并设置async:falsehttp://api.jquery.com/jQuery.ajax/
这将等待调用完成,挡住你的页面。

这就是说,我不确定你是否应该使用JavaScript来验证密码。这是你通常想要在服务器上完成的事情,无论如何它都没有任何安全性。

+0

是的,我的应用程序中确实存在服务器端验证,客户端验证只是用户体验的增强。异步的作品。谢谢! – Sawyer 2010-01-28 01:58:13