好的我有代码:
function forgotPassword(){
var email = $("#forgotEmail").val();
var atpos = email.indexOf("@");
var dotpos = email.lastIndexOf(".");
if(email == null){
$("#screenContainer2").fadeIn();
document.getElementById("warningMessage").innerHTML = "You must fill in your email";
$("#warningCasing").animate({height: "178px"}, 700);
return false;
}
if(email == ""){
$("#screenContainer2").fadeIn();
document.getElementById("warningMessage").innerHTML = "You must fill in your email";
$("#warningCasing").animate({height: "178px"}, 700);
return false;
}
if (atpos< 1 || dotpos<atpos+2 || dotpos+2>=email.length) {
$("#screenContainer2").fadeIn();
document.getElementById("warningMessage").innerHTML = "Not a valid e-mail address";
$("#warningCasing").animate({height: "178px"}, 700);
return false;
}
$.post("forgotPassword.php", {"email":email}, function(data){
console.log(data);
if(data == "success"){
$("#screenContainer2").fadeIn();
document.getElementById("warningMessage").innerHTML = "Your request has been recieved, you should recieve an email shortly confirming your password.";
$("#warningCasing").animate({height: "178px"}, 700);
$("#forgotPasswordDiv").fadeOut("slow");
$("#screenContainer").fadeOut("slow");
}
if(data == "found"){
$("#screenContainer2").fadeIn();
document.getElementById("warningMessage").innerHTML = "There has been an error, please try again.";
$("#warningCasing").animate({height: "178px"}, 700);
return false;
}
if(data == "failed"){
console.log("hello");
$("#screenContainer2").fadeIn();
document.getElementById("warningMessage").innerHTML = "We could not find an account with that email.";
$("#warningCasing").animate({height: "178px"}, 700);
return false;
}
});
}
我有2个console.log点。第一个告诉我,如果data ==“failed”,第二个应该运行的数据是什么。问题是,即使第一个console.log记录的数据==“失败”,第二个也不记录。
我将最后一个if语句改为else,看看会发生什么,并且它包含的代码会触发。由于某种原因,post请求返回的数据被以下if语句识别。我真的被困在这一个。我知道php文件没问题,在网络选项卡中返回200,第一个console.log证明一切正常。由于某种原因,if语句未被识别。
任何帮助都将不胜感激,谢谢。
答案 0 :(得分:1)
尝试在下面的数据上使用trim,或者在关闭标记后检查你的php文件是否有任何额外的行或空格。有时在PHP代码中,如果在结束的php标记之后有额外的行或额外的空格,这可能发生,因为返回的值可能是“失败\ n”而不是“失败”。
data = $.trim(data)