Home > Article > Web Front-end > Learn the return false_javascript trick in jQuey
What is the function of return false in jQuey?
Return false is used in many statements. Of course, for developers who are familiar with it, they know the basics and the function of this statement. Of course, they also know when to use this statement. However, beginners may not necessarily understand it. It's very clear. Let's introduce the function of the return false statement through an example.
The function of the return statement is generally to return the function value, and no longer execute the following statements, but jump directly to the place where the function is called. Another important function is to cancel the occurrence of the default event behavior.
The code example is as follows:
<!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>
As can be seen from the above code, after clicking the link, it does not jump to the homepage of http://www.jb51.net. This is because return false can prevent the browser's default behavior, such as clicking Hyperlinks will jump to web pages, which is the browser's default behavior. Let’s look at another example of form validation:
<!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>
In the above code, a return false statement is added at the end of each judgment statement. If the username or password is empty, a prompt box will pop up. If there is no return false statement, then although the prompt box will pop up, But the form will still be submitted, because clicking to submit the form is the default event behavior of clicking the submit button.
Then why return false in jquery doesn’t work? Is there any solution?
I wrote a form verification js code as follows:
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; //为啥不管用捏? } } ); }
Reason: The logic is not clear. To set ajax to be synchronous, you need to use $.ajax. $.get is asynchronous by default and is not within the callback function. return, instead declare a variable in the CheckUserName function to accept the return value of the callback function, and then CheckUserName returns this value.
Modified code:
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! Test it, no problem!
When to use return and when to use return false in js/jquery? This is also where everyone is confused.
Fundamentally speaking, return is used to return the result of a function. If your function needs execution results, then return the results you need. If you don’t need the results, don’t return;
There are some special usages in jq, such as $().each(function(){return false;});
If false is not returned, all elements will be looped, and if false is returned once, subsequent traversal will not be performed and the loop will be jumped out.
The above is a detailed study of return false in jQuey. I hope it will be helpful to everyone's study.