我正在使用Javascript验证更改的密码表单。我想验证用户当前使用Ajax返回true或false的密码。如果是,那么继续检查下一个输入。我想我需要一个回调,但是我做错了,因为它没有等待Ajax结果,它正在进行中。我必须在何处以及如何进行回调?太多了!
我有一张表格:
<form id="pwdform" action="#" onSubmit="return validatePwdForm()" method="POST">
<label>Current password</label>
<label style="display:none">Your current password is wrong</label>
<input type="password" id="currentpassword" name="currentpassword" value=""/>
...
</form>
我有Javascript验证功能:
function validatePwdForm(){
// ... checking stuff ...
checkPwd('givenpassword');//Ajax call (I have it working properly, returning true or false) ...
//... If it's false, I want to stop checking other inputs
//... more stuff ...
}
Ajax调用使用数据库检查密码:
function checkPwd(pwd){
//...Ajax call ok and returns true or false
}
答案 0 :(得分:0)
在函数validatePwdForm()
中,函数checkPwd()
返回的数据未分配给任何变量。如下所示:
var res=checkPwd(pswd);
if(res==true){
//continue checking
}
else {
//show error message
}
否则,您可以将剩余的输入放在另一个函数中,并从ajax success函数本身调用该函数。
$.ajax(function(){
....
....
success:function(data){
if(data==true) separateFun();
else //show error message
}
});