jQuey中的return false作用是什么?
在眾多的語(yǔ)句中都有return false的使用,當(dāng)然對(duì)于熟悉它的開(kāi)發(fā)者來(lái)說(shuō),當(dāng)然是知根知底,知道此語(yǔ)句的作用,當(dāng)然也就知道在什么時(shí)候使用此語(yǔ)句,不過(guò)對(duì)于初學(xué)者可能未必掌握的很清晰明了,下面通過(guò)實(shí)例介紹一下return false語(yǔ)句的作用。
return語(yǔ)句的作用一般是返回函數(shù)值,并不再執(zhí)行下面的語(yǔ)句,直接跳到函數(shù)調(diào)用的地方,另外還有一個(gè)重要的作用,那就是取消默認(rèn)事件行為的發(fā)生。
代碼實(shí)例如下: 
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="author" content="http://www.softwhy.com/" /><title>武林網(wǎng)</title><script type="text/javascript" src="mytest/jQuery/jquery-1.8.3.js"></script> <script type="text/javascript"> $(document).ready(function(){ $("a").click(function(){   return false; }) }) </script> </head> <body> <div id="first"> <div id="second">  <a id="third" href=//m.survivalescaperooms.com>鏈接</a> </div> </div> </body> </html>從以上代碼可以看出,點(diǎn)擊鏈接之后并沒(méi)有跳轉(zhuǎn)到//m.survivalescaperooms.com首頁(yè),這是因?yàn)閞eturn false能夠阻止瀏覽器的默認(rèn)行為,比如點(diǎn)擊超鏈接就會(huì)實(shí)現(xiàn)網(wǎng)頁(yè)跳轉(zhuǎn)就是瀏覽器的默認(rèn)行為。下面再看一個(gè)表單驗(yàn)證的例子:
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="author" content="http://m.survivalescaperooms.com/" /><title>武林網(wǎng)</title><script type="text/javascript" src="mytest/jQuery/jquery-1.8.3.js"></script> <script type="text/javascript"> $(document).ready(function(){  $(":submit").click(function(){   if($("#username").val()=="")   {    alert("用戶名不能為空!");    $("#username").focus();    return false;   }   if($("#pw").val()=="")   {    alert("密碼不能為空!");    $("#pw").focus();    return false;   }  }) }) </script> </head> <body> <form action="http://m.survivalescaperooms.com" name="myform"> <ul>  <li>用戶名:<input type="text" id="username" /></li>  <li>密碼:<input type="password" id="pw" /></li>  <li><input type="submit" value="提交表單"></li> </ul> </form> </body> </html>以上代碼中,每一個(gè)判斷語(yǔ)句的最后都添加了return false語(yǔ)句,如果用戶名或者密碼為空的話,則會(huì)彈出提示框,如果沒(méi)有return false語(yǔ)句的話,那么盡管還能夠彈出提示框,但是表單依然會(huì)被提交,因?yàn)辄c(diǎn)擊提交表單就是點(diǎn)擊提交按鈕的默認(rèn)事件行為。
那為什么jquery中的return false不起作用,有什么解決方法?
寫(xiě)了個(gè)表單驗(yàn)證js代碼如下:
function CheckUserName(){    var username = $("#username").val();    $.get("b.php",{ name:username},      function (data){        if(data == 1){          $("#warnning").html("<font color=#FF3300>Account is used.</font>");          return false;  //為啥不管用捏?        } else {          $("#warnning").html("<font color=#00CC66>You can register.</font>");          return true;  //為啥不管用捏?        }      }    );  }原因:邏輯沒(méi)弄清楚,要將ajax設(shè)置為同步的,需要使用$.ajax,$.get默認(rèn)是異步的,并且不是在回調(diào)函數(shù)內(nèi)return,而是在CheckUserName函數(shù)中聲明一個(gè)變量來(lái)接受回調(diào)函數(shù)的返回值,然后CheckUserName返回這個(gè)值。
修改后的代碼: 
 function CheckUserName(){    var username = $("#username").val();    var result=false;    $.ajax({async:false//要設(shè)置為同步的,要不CheckUserName的返回值永遠(yuǎn)為false        ,url:'b.php',data:{name:username}        ,success:function(data){        if(data == 1){          $("#warnning").html("<font color=#FF3300>Account is used.</font>");          result=false;        } else {          $("#warnning").html("<font color=#00CC66>You can register.</font>");          result=true;        }    }});    return result;//==========這里才是CheckUserName的返回值,回調(diào)函數(shù)返回值沒(méi)有意義  }OK! 測(cè)試一下,沒(méi)問(wèn)題了!
js/jquery中什么時(shí)候用return,什么時(shí)候用return false?這也是大家疑惑的地方。
根本的說(shuō) return 是函數(shù)的返回結(jié)果用, 如果你一個(gè)函數(shù)需要執(zhí)行結(jié)果那就return 你需要的結(jié)果,不需要結(jié)果就不用return;
而在jq中有些特殊的用法,比如$().each(function(){return false;});
其中如果不return false就會(huì)循環(huán)所有元素, 而如果在其中一次return false則不在進(jìn)行后續(xù)的遍歷,跳出循環(huán)。
以上就是針對(duì)jQuey中的return false進(jìn)行的詳細(xì)學(xué)習(xí),希望對(duì)大家的學(xué)習(xí)有所幫助。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注