我遇到一段代码问题,我用来检查函数是否返回一个等于另一个字符串的字符串。这个问题听起来微不足道,但我似乎无法让它发挥作用。
以下是代码,如果您需要更多代码,请确保对我大喊大叫。
<script>
function emptyElement(x){
_(x).innerHTML = "";
}
function login(){
var e = _("email").value;
var p = _("password").value;
if(e == "" || p == "") {
_("status").innerHTML = "Fill out all of the form data";
} else{
_("loginbtn").style.display = "none";
_("status").innerHTML ='please wait...';
var ajax = ajaxObj("POST", "index.php");
ajax.onreadystatechange = function() {
if(ajaxReturn(ajax) == true) {
document.write(ajax.responseText); // returns "login_failed" when I try it
if(ajax.responseText == "login_failed"){
_("status").innerHTML = "Login unsuccessful, please try again.";
_("loginbtn").style.display = "block";
} else {
//window.location = "afterlogin.php?u="+ajax.responseText;
}
}
}
ajax.send("e="+e + "&p="+p);
}
}
</script>
为了测试目的,注释掉了window.location函数。别介意。下面,我将发布使用的两个脚本的代码,“main”和“ajax”。
function ajaxObj( meth, url ) {
var x = new XMLHttpRequest();
x.open( meth, url, true );
x.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
return x;
}
function ajaxReturn(x){
if(x.readyState == 4 && x.status == 200){
return true;
}
}
以及main.js的代码
function _(x){
return document.getElementById(x);
}
我不想赞成原始代码;它是从developphp.com收集的,只是略有改动。
问题是,正如我所评论的那样,行
ajax.responseText == "login_failed"
似乎从来都不是真的,不管我怎么做。这就是我需要的指导。
此致
答案 0 :(得分:0)
答案为时已晚,但有人可能会遇到同样的问题。
您需要撰写
ajax.responseText == '"login_failed"';