0

可能重复:
如何从函数的 AJAX 调用返回响应?

我正在创建一个带有电子邮件 ID 和密码的注册页面。我在注册页面中调用了 onsubmit 事件,该事件调用了写在 common.js 文件中的 checkData() 函数。我有一个 ajax 函数来检查数据库中是否存在电子邮件 ID?但我的问题是当我在完成检查我的 ajax 函数后保持警报消息工作正常但如果警报被删除,它会将数据输入到数据库中。这是ajax的代码

   else
   {
       $(function() {

              $.ajax({
                    url  : 'RegCheck.php',
                    type : 'POST',
                    data : 'User=' + address,
                    success : function(result){
                       if(result != "No")
                       {
                           document.getElementById("EmailChk").innerHTML = result;    
                           Valid = false;

                       }
                    }

              });              


       });                         
      document.getElementById("MailMand").innerHTML = "" ;

   }    
   alert(Valid);
   return Valid;
4

1 回答 1

1

ajax 不是那样工作的。success代码将在99.9 % 的时间(如果不是 100% 的时间)之后执行。return Valid不能保证什么时候success会被调用。

相反,您需要在ajax回调中完成所有工作,或者(不寒而栗)使其同步。

因此,如果您依赖它进行验证,则需要停止表单提交,然后在success方法中提交表单。

于 2013-01-24T06:23:33.150 回答