我想实现更改用户密码的功能。它基本上是一个有三个字段的表单。三个输入的ID为oldpassword
,newPassword
和newPasswordAgain
。
当用户失去了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结果。我不能直接从结果中得到真或假。
答案 0 :(得分:1)
您可以使用$.ajax
并设置async:false
:http://api.jquery.com/jQuery.ajax/
这将等待通话完成,阻止您的页面。
那就是说,我不确定你是否应该使用JavaScript来验证密码。这是您通常希望在服务器上执行的操作,无论如何都没有安全性。