1

我有一些代码给我带来了问题。

这个:

    onclick="return my_Check();"

然后这个:

    onclick="my_Check();"

我的问题是,这不是一回事吗?

4

4 回答 4

2

不,第一个返回my_Check()函数的返回值。

第二个没有。

这意味着事件可能会响应该返回值。某些事件在返回时会被取消false,因此这会对您的页面行为产生影响。

于 2013-02-18T16:51:07.120 回答
1

不,它们不一样。浏览器内部使用“onclick”属性的字符串值来构造函数:

var actualHandler = new Function( "event", attributeValue); // for IE, no "event"

因此,添加return关键字意味着处理函数将在完成调用工作后向浏览器返回一个值。如果处理程序想要阻止浏览器执行任何“本机”操作以响应事件,这一点很重要:它可以返回false以告诉浏览器什么都不做。

编辑——我把参数顺序倒了,但现在已经修好了

于 2013-02-18T16:52:25.493 回答
0

不。

如果您form这样做submit并且在提交之前运行第一个:

  • 如果结果是false,表单将不会提交

  • 在第二个 - 它会。(即使my_Check();返回假)

于 2013-02-18T16:50:48.803 回答
0

return传递给处理程序的任何内容my_Check。如果my_Check返回false,则取消事件的默认操作。没有它,返回的值将被丢弃,并且无论如何都会执行默认操作。

于 2013-02-18T16:51:57.200 回答