JavaScript'onclick'事件'返回'关键字功能

时间:2011-10-18 23:27:38

标签: javascript html onclick return

我是javascript的新手,偶然发现了return关键字。基本上,这两个陈述的区别是什么?

<input type="checkbox" onclick="doAlert()" />

vs

<input type="checkbox" onclick="return doAlert();" />

基本上,两者都返回了相同的结果并调用了函数,但还有更多吗?任何帮助非常感谢:)。谢谢!

3 个答案:

答案 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函数将执行它的工作,它将重定向到下一个指定的页面,而不关心返回的结果是否为真或假的。