我一直在努力解决这个问题,但似乎我无法解决。
这是我的代码:
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响应之前不退出函数。
有人可以帮忙吗?
答案 0 :(得分:1)
你应该在响应另一个函数之后添加你需要执行的其他代码,并在处理程序中调用该函数:
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";
}
}
}
Hopte有帮助!