Apakah fungsi return false dalam jQuey?
Return false digunakan dalam banyak pernyataan Sudah tentu, bagi pembangun yang biasa dengannya, mereka tahu asas dan fungsi pernyataan ini, mereka juga tahu bila hendak menggunakan pernyataan ini . Ia sangat jelas Mari kita perkenalkan fungsi pernyataan palsu kembali melalui contoh.
Fungsi pernyataan pulangan secara amnya adalah untuk mengembalikan nilai fungsi, dan tidak lagi melaksanakan pernyataan berikut, tetapi melompat terus ke tempat fungsi dipanggil.
Contoh kod adalah seperti berikut:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>脚本之家</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=<a href="http://www.jb51.net">http://www.jb51.net</a>>链接</a> </div> </div> </body> </html>
Seperti yang dapat dilihat daripada kod di atas, selepas mengklik pautan, ia tidak melompat ke laman utama http://www.jb51.net Ini kerana return false boleh menghalang lalai penyemak imbas tingkah laku, seperti mengklik Hiperpautan akan melompat ke halaman web, yang merupakan tingkah laku lalai penyemak imbas. Mari lihat satu lagi contoh pengesahan borang:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.jb51.net/" /> <title>脚本之家</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://www.jb51.net" 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>
Dalam kod di atas, penyataan kembali palsu ditambahkan pada penghujung setiap pernyataan penghakiman Jika nama pengguna atau kata laluan kosong, kotak gesaan akan muncul Jika tiada pernyataan palsu kembali, maka walaupun kotak gesaan akan muncul, Tetapi borang masih akan diserahkan, kerana mengklik untuk menghantar borang adalah tingkah laku acara lalai mengklik butang hantar.
Lalu mengapa mengembalikan false dalam jquery tidak berfungsi?
Saya menulis kod js pengesahan borang seperti berikut:
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; //为啥不管用捏? } } ); }
Sebab: Logiknya tidak jelas untuk menetapkan ajax menjadi segerak, anda perlu menggunakan $.ajax secara lalai dan tidak berada dalam kembali, sebaliknya mengisytiharkan pembolehubah dalam fungsi CheckUserName untuk menerima nilai pulangan fungsi panggil balik, dan kemudian CheckUserName mengembalikan nilai ini.
Kod diubah suai:
function CheckUserName(){ var username = $("#username").val(); var result=false; $.ajax({async:false//要设置为同步的,要不CheckUserName的返回值永远为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的返回值,回调函数返回值没有意义 }
OK!
Bila hendak menggunakan return dan bila hendak menggunakan return false dalam js/jquery? Di sini juga semua orang keliru.
Secara asasnya, pulangan digunakan untuk mengembalikan hasil fungsi Jika anda memerlukan fungsi untuk melaksanakan hasilnya, maka kembalikan hasil yang anda perlukan, jangan kembalikan >
Terdapat beberapa penggunaan khas dalam jq, seperti $().each(function(){return false;});
Jika false tidak dikembalikan, semua elemen akan digelung, dan jika false dikembalikan sekali, traversal berikutnya tidak akan dilakukan dan gelung akan melompat keluar.
Di atas adalah kajian terperinci tentang return false dalam jQuey. Saya harap ia akan membantu kajian semua orang.