Javascript字符串比较错误

时间:2014-10-02 22:08:57

标签: javascript ajax string comparison

我遇到一段代码问题,我用来检查函数是否返回一个等于另一个字符串的字符串。这个问题听起来微不足道,但我似乎无法让它发挥作用。

以下是代码,如果您需要更多代码,请确保对我大喊大叫。

    <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"

似乎从来都不是真的,不管我怎么做。这就是我需要的指导。

此致

1 个答案:

答案 0 :(得分:0)

  

答案为时已晚,但有人可能会遇到同样的问题。

您需要撰写

ajax.responseText == '"login_failed"';