为什么在下面的onclick even处理程序中使用“return”,似乎在按钮的onclick事件中有或没有返回规范的情况下运行?
input type="radio" name="radCPUSpeed" value="6 Ghz"
onclick="return radCPUSpeed_onclick(2)"
该函数似乎没有对它做任何事情,为什么你需要在上面的输入声明中返回?
function radCPUSpeed_onclick(radIndex)
{
var returnValue = true;
if (radIndex == 1)
{
returnValue = false;
alert("Sorry that processor speed is currently unavailable");
// Next line works around a bug in IE that doesn't cancel the
// Default action properly
document.form1.radCPUSpeed[radCpuSpeedIndex].checked = true;
}
else
{
radCpuSpeedIndex = radIndex;
}
return returnValue;
}
答案 0 :(得分:4)
从事件处理函数返回false
将阻止与事件关联的默认浏览器行为。返回任何其他值(包括undefined
,如果没有执行return
语句则返回的值)将不会。重要的是,返回false
不会阻止事件冒泡DOM树,并且仍然会执行附加到DOM树上方节点的事件处理程序。
另请注意,这不适用于通过addEventListener
或attachEvent
附加的事件侦听器功能。此类函数中的返回值无效。
答案 1 :(得分:2)
当您从任何事件处理程序返回false
时,事件将不会冒泡。所以我们通常会说这个按钮会提交一个表单,当你返回false
时,这不会发生。基本上它会阻止事件的默认操作。
答案 2 :(得分:-1)
基本上,在'='符号后面的值或任何内容都是事件处理程序的函数。 作为一个原因,必须使用return,以便函数返回一个布尔值给事件处理程序-onclick,onsubmit等。
onclick="return radCPUSpeed_onclick(2)
以上代码可以中断为: 的onclick =“功能(){radCPUSpeed_onclick(2)} 因此,等于符号之后的任何内容实际上都在函数内部,并且需要返回语句。