我是javascript的新手,偶然发现了return
关键字。基本上,这两个陈述的区别是什么?
<input type="checkbox" onclick="doAlert()" />
vs
<input type="checkbox" onclick="return doAlert();" />
基本上,两者都返回了相同的结果并调用了函数,但还有更多吗?任何帮助非常感谢:)。谢谢!
答案 0 :(得分:40)
某些html元素的JS事件在返回true / false时表现不同。例如:
<input type='submit' value='Click Me' onSubmit='ValidateForm();'>
... ... VS
<input type='submit' value='Click Me' onSubmit='return ValidateForm();'>
在第二个实例中,如果ValidateForm
函数返回false,表单将不会提交,在第一个函数中,即使函数返回false,表单仍将提交。
我认为在这种情况下,您可以看到使用return
关键字之间的区别,而不是。
更新为了简化,如果使用return
关键字,则会将值传递回调用onsubmit
的函数。没有它,您只需调用您在事件处理程序中命名的函数并且不返回任何内容。
答案 1 :(得分:37)
从函数返回false,将中止检查的效果。因为写入硬编码到html属性的函数的本机(它变成了一些新的本地函数),编写没有单词“return”的html将只运行该函数,并丢失其返回值,就好像你写了:
function doAlert() {
if(some_condition)
return false;
else
return true;
}
function some_local_function() {
doAlert();
}
虽然some_local_function
返回,但函数doAlert
不会返回任何值。
当你写“return”时,就像你写了第二个函数一样:
function some_local_function() {
return doAlert();
}
保留doAlert的返回值,无论它是什么。如果确实如此 - 将执行操作(将选中复选框) - 否则 - 它将取消。
您可以在此处查看实时expamle:http://jsfiddle.net/RaBfM/1/
答案 2 :(得分:0)
将return
添加到函数(),它会禁用浏览器的默认行为,它会禁用submit
的作业。意味着如果函数返回false,它将使您保持在同一页面上,并且您可以再次将值填入该字段。
如果你没有将return
与函数()一起使用,那么submit
函数将执行它的工作,它将重定向到下一个指定的页面,而不关心返回的结果是否为真或假的。