要说明JavaSctipt返回空值return;的作用,我们先看看 return 的一些细节知识,如:onClick=’return add_onclick()’ 与 onClick=’add_onclick()’ 的区别。
JavaScript 在事件中调用函数时用return返回值,实际上是对 window.event.returnvalue 进行设置,而该值决定了当前操作是否继续。
- 当返回的是 true 时,将继续操作。
- 当返回的是 false 时,将中断操作。
而直接执行时(不用return),将不会对window.event.returnvalue进行设置,所以会默认地继续执行操作。例如,在
<a href="abc.htm" onclick="return add_onclick()">Open</a>
中,如果函数 add_onclick() 返回 true, 那么页面就会打开 abc.htm。否则(返回 false),页面不会跳转到 abc.htm,只会执行你的 add_onclick() 函数里的内容(add_onclick函数中控制页面转到 abc.htm除外)。而不带 return 的语句:
<a href="abc.htm" onclick="add_onclick()">Open</a>
不管 add_onclick() 返回什么值,都会在执行完 add_onclick() 后打开页面 abc.htm。
return 是 Javascript 里函数返回值的关键字,一个函数内处理的结果可以使用return 返回,在调用函数的地方就可以用变量接收返回结果。return 关键字内任何类型的变量数据或表达式都可以进行返回,甚至什么都不返回也可以比如
function NullReturn(IsNull) { if(IsNull==true) { return; } }
这样写也是可以的,这里的意思是返回空(null),所以有的时候return 的作用就是用来终止函数执行。再比如,不加return 的情况:
<html> <head> <title>return验证测试</title> <script language="javascript"> function Login_Click() { if(document.form1.UsName.value=="") { alert('用户名为空'); } if(document.form1.UsPwd.value=="") { alert('密码为空'); } alert('登陆成功'); } </script> </head> <body> <form name="form1"> <input type="text" name="UsName" >用户名 <input type="password" name="UsPwd">密码 <input type="button" name="Login" onClick="Login_Click();" >登陆 </form> </body> </html>
和加 return 的情况:
<html> <head> <title>return验证测试</title> <script language="javascript"> function Login_Click() { if(document.form1.UsName.value=="") { alert('用户名为空'); return; } if(document.form1.UsPwd.value=="") { alert('密码为空'); return; } alert('登陆成功'); } </script> </head> <body> <form name="form1"> <input type="text" name="UsName" >用户名 <input type="password" name="UsPwd">密码 <input type="button" name="Login" onClick="Login_Click();" >登陆 </form> </body> </html>
运行就会发现加return 和不加return 的区别,最简单的测试办法,上面的两个例子什么都不输入直接登陆,会有如下的反应:
不加 return 的现象是先提示用户名没输入,然后提示密码没输入,也就是说,程序会继续执行下去;
加了 return 之后,遇到一个没输入之后就不再继续检测;
return false 表示返回一个 false 值,也就是说提交是不成功的,就是不会提交上去。
return true 表法返回一个 true 值,也就是提交了,不管你输入没有输入值,都会提交到action指定页面。