2 回答

TA貢獻1951條經驗 獲得超3個贊
將異步參數值更新為 false。如果 async 參數值為 false,則 send() 方法在收到響應之前不會返回。
xhttp.open("GET","emailvalidate.php?uemail="+email,false);
試試下面的代碼它會工作。
function check_email(){
var email = document.getElementById("uemail").value;
if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
xhttp=new XMLHttpRequest();
}
else {// code for IE6, IE5
xhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
result = true; // create a variable result and by default make it true.
xhttp.onreadystatechange=function(){
if (xhttp.readyState == 4 && xhttp.status == 200) {
document.getElementById("alert").style.display="inline";
if(xhttp.responseText=="EMP"){
document.getElementById("alert").innerHTML="<br><span class='badge badge-pill badge-info'>fill out emai id</span>";
console.log("Email id empty return false");
result = false;
}
else if(xhttp.responseText=="OK"){
document.getElementById("alert").innerHTML="<br><span class='badge badge-pill badge-success' >welcome new user</span>";
//document.getElementById("submit-button").disabled = false;
console.log("New email id return true");
}
else if(xhttp.responseText=="NO"){
document.getElementById("alert").innerHTML="<br><span class='badge badge-pill badge-danger'>Email Already Exist</span>";
//document.getElementById("submit-button").disabled = true;
console.log("Email id already exsist return false");
result = false;
}
else{
document.getElementById("alert").innerHTML=xhttp.responseText;
//document.getElementById("submit-button").disabled = true;
console.log("Error fetching email id");
result = false;
}
}
};
xhttp.open("GET","emailvalidate.php?uemail="+email,false);
xhttp.send();
return result; //at last return the result.
}

TA貢獻2021條經驗 獲得超8個贊
這check_email是一個異步函數。這就是為什么你沒有得到返回結果。你必須調用下面的函數。
function在關鍵字之前添加 async并在check_email function.
async function check_three_func() {
var check_email_func = await check_email();
var click_to_func = click_to();
var check_func = check();
if (check_email_func && click_to_func && check_func) {
return true;
console.log("all true");
}
else {
return false;
console.log(" false");
}
}
將您的 ajax 代碼包裝在一個 Promise 中,并根據響應解決或拒絕,然后返回該 Promise。
function check_email() {
return new Promise((resolve, reject) => {
var email = document.getElementById("uemail").value;
if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
xhttp = new XMLHttpRequest();
}
else {// code for IE6, IE5
xhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xhttp.onreadystatechange = function () {
if (xhttp.readyState == 4 && xhttp.status == 200) {
document.getElementById("alert").style.display = "inline";
if (xhttp.responseText == "EMP") {
document.getElementById("alert").innerHTML = "<br><span class='badge badge-pill badge-info'>fill out emai id</span>";
console.log("Email id empty return false");
reject(false);
}
else if (xhttp.responseText == "OK") {
document.getElementById("alert").innerHTML = "<br><span class='badge badge-pill badge-success' >welcome new user</span>";
//document.getElementById("submit-button").disabled = false;
console.log("New email id return true");
resolve(true);
}
else if (xhttp.responseText == "NO") {
document.getElementById("alert").innerHTML = "<br><span class='badge badge-pill badge-danger'>Email Already Exist</span>";
//document.getElementById("submit-button").disabled = true;
console.log("Email id already exsist return false");
reject(false);
}
else {
document.getElementById("alert").innerHTML = xhttp.responseText;
//document.getElementById("submit-button").disabled = true;
console.log("Error fetching email id");
reject(false);
}
}
};
xhttp.open("GET", "emailvalidate.php?uemail=" + email, true);
xhttp.send();
});
}
- 2 回答
- 0 關注
- 112 瀏覽
添加回答
舉報