js中return false失效是怎么回事?


js中return false失效是怎么回事?

今天在写一个功能,是需要用到ajax,所以我就很爽快的从本站找了一下GET方式的ajax,速度很快,通过函数,获取到了返回的值。


大致的代码是这样的:


#
#
 function postcheck(){
    var user_name= document.getElementById('username');
    var user_tel= document.getElementById('usertel');
    var yzm = document.getElementById("yzm");
    S_xmlhttprequest();    //------------------引用上面的方法
    xmlHttp.open("GET","./yzm.php?tel="+user_tel.value+ "&yzm="+ yzm.value,false);
    xmlHttp.onreadystatechange = byphp;    //------------------引用byphp方法
    xmlHttp.send(null);
 
  }
function byphp(){     //------------------php运行的结果返回在这里
    var  eitail = xmlHttp.responseText;
    return false;//**ABC***
} 
#
#

之后就是根据 byphp()这个方法中的eitail这个值是正确还是不正确,若不正确,就终止postcheck()方法。但是怎么写ABC都不成功,都不能禁止,那怎么办呢?怎么才能使这里的return false能够起作用呢?后来我改了下。使byphp()中的eitail变成全局变量,只需要将之前的var去掉即可。


修改的代码如下:


#
#
function byphp(){     //------------------php运行的结果返回在这里
     eitail = xmlHttp.responseText;
} 

  function postcheck(){
    var user_name= document.getElementById('username');
    var user_tel= document.getElementById('usertel');
    var yzm = document.getElementById("yzm");
    S_xmlhttprequest();    //------------------引用上面的方法
    xmlHttp.open("GET","./yzm.php?tel="+user_tel.value+ "&yzm="+ yzm.value,false);
    xmlHttp.onreadystatechange = byphp;    //------------------引用byphp方法
    xmlHttp.send(null);
  if(eitail != 1){
    alert(eitail);
    return false;
  }
}
#
#


这样,只要将eitail设置成全局变量,在postcheck()的方法中进行这个全局变量的判断即可。

如果您看到了最后这一行,我要告诉你一句,请记住js中的全局变量这个词,以后用到的可是很多的。

上一篇 下一篇