Javascript函数不等待AJAX​​响应

时间:2013-09-24 09:06:44

标签: javascript html ajax

我有一个名为flagIt()的AJAX函数,它在另一个名为validateForm()的函数中调用。 validateForm()在提交时执行。

function validateForm(){
    var error = "";
    //do stuff to validate form
    if(error == ""){
        flagIt();
    }else{
      window.alert(error);
      return false;
    }
} 

如上所示,它将调用flagIt(),但随后允许表单提交而无需等待我在flagIt()内执行的AJAX响应。

如果我在调用window.alert('something');后添加flagIt()它有时间执行AJAX,一切正常。

在允许表单提交而不添加警报之前,如何强制函数validateForm()等待我的AJAX?

我尝试了return flagIt()

修改

澄清一点,我不是在AJAX中提交表格。我正在更新数据库。

2 个答案:

答案 0 :(得分:3)

您可以在ajax中使用async:false,在return false;之后使用flagIt(),并使用document.myform.submit();

在ajax的成功函数中提交表单

答案 1 :(得分:1)

只需添加我的评论

您的代码不会停留在flagIt(),因为它是一个AJAX,它是 Asynchronous

如果你想让它停在那里并等待AJAX​​调用完成,你必须将async标志设置为false

xmlhttpp.open("GET",url,false);

是的,你可以称之为 SJAX