我有一个名为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中提交表格。我正在更新数据库。
答案 0 :(得分:3)
您可以在ajax中使用async:false
,在return false;
之后使用flagIt()
,并使用document.myform.submit();
答案 1 :(得分:1)
只需添加我的评论
您的代码不会停留在flagIt()
,因为它是一个AJAX,它是 Asynchronous
如果你想让它停在那里并等待AJAX调用完成,你必须将async
标志设置为false
xmlhttpp.open("GET",url,false);
是的,你可以称之为 SJAX