gpt4 book ai didi

javascript - 在继续执行另一个代码之前等待函数执行

转载 作者:行者123 更新时间:2023-11-28 01:03:10 25 4
gpt4 key购买 nike

我一整天都在试图解决这个问题,但似乎我无法解决。

这是我的代码:

function mailcheckajax(email){
//var add = $('#mail').val();
//window.location = "index.php?address="+add;
//alert(window.location.pathname);
var loc = window.location.pathname;
var dir = loc.substring(0, loc.lastIndexOf('/'));
var xmlhttp;

// code for IE7+, Firefox, Chrome, Opera, Safari
if (window.XMLHttpRequest) {
xmlhttp=new XMLHttpRequest();
} else {
// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}

xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
if(xmlhttp.responseText != "valid"){
window.mailerror = "true";
} else {
window.mailerror="false";
}
}
}

xmlhttp.open("GET","/application/views/client/mailvalidate.php?address="+$('#'+email).val(),true);
xmlhttp.send();
return "true";
}

它调用这个函数并出现另一行代码:

mailcheckajax('studentEmail');

if (checkvalidate == "true") {
if (validateStep(oldstep) == false) {
$("html, body").animate({
scrollTop: 0
}, "slow");
return false;
}
}

我需要在 onclick() 上首先完全执行 mailcheckajax 函数,以便使用 ajax 从服务器获取响应,并且只有在其他代码之后才执行。或者在获得 ajax 响应之前不要退出函数。

有人可以帮忙吗?

最佳答案

您应该在对另一个函数的响应之后添加需要执行的其他代码,并在处理程序内调用该函数:

xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
if(xmlhttp.responseText != "valid"){
window.mailerror = "true";
//CALL HERE THE FUNCTION YOU WANT TO EXECUTE AFTER THE RESPONSE IS RECEIVED
} else {
window.mailerror="false";
}
}
}

希望有帮助!

关于javascript - 在继续执行另一个代码之前等待函数执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25405268/

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