gpt4 book ai didi

jquery - 如何在选择条件之前等待 JQUERY AJAX 响应

转载 作者:行者123 更新时间:2023-12-03 22:28:53 26 4
gpt4 key购买 nike

$("#submit").click(function () {
var boolError = false;

CheckForm("#email");
CheckPhone("#phone");

if (boolError == true) {
console.log('error');
} else {
console.log('here');
// $("#form").submit();
}
});

问题是它总是返回 console.log('here');

有没有办法等待CheckForm和CheckPhone。来自 CheckForm 函数的 AJAX 调用:

$.ajax({
type: "POST",
url: "/webservice/user.asmx/CheckForm",
data: "{'type':'" + var_type + "', 'value':'" + var_value + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
error: function (XMLHttpRequest, textStatus, errorThrown) { },
success: function (data) {
var obj = data.d;
}
});

最佳答案

尝试将 async 设置为 false: (请参阅下面的编辑)

$.ajax({
type: "POST",
async: false,
url: "/webservice/user.asmx/CheckForm",
data: "{'type':'" + var_type + "', 'value':'" + var_value + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
error: function (XMLHttpRequest, textStatus, errorThrown) { },
success: function (data) {
var obj = data.d;
}
});

这将使 AJAX 调用阻塞,因此浏览器将等待其完成后再继续。当然,我仍然不确定这与父条件中检查的 bool 值有何关系。也许有些代码您没有向我们展示...

<小时/>

编辑::::叹息:::当我发布这个答案时,我还年轻又愚蠢,事实上我已经忘记了这一切。出于历史目的,我保留上述信息不变(因为它似乎对某些人有帮助,或者至少他们认为有帮助),但要明白这不是正确的方法.

使异步调用同步并阻塞执行在任何方面都是不正确的。不要这样做。相反,构建逻辑来响应异步操作。在这个问题中,对 console.log() 的调用应该发生在 AJAX 调用的成功(或错误)处理程序中,而不是在调用该调用之后的代码中。

关于jquery - 如何在选择条件之前等待 JQUERY AJAX 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5868096/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com