表单验证需要回调

时间:2015-04-05 09:25:40

标签: callback

我正在使用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
}

1 个答案:

答案 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

}
});