我在HTML页面中见过很多这样的链接:

<a href='#' onclick='someFunc(3.1415926); return false;'>Click here !</a>

这里return false的效果是什么?

而且,我通常不会在按钮中看到这种情况。

这在任何地方都指定了吗?在w3.org的一些规范中?


当前回答

下面是一个更健壮的例程,可以取消所有浏览器中的默认行为和事件冒泡:

// Prevents event bubble up or any usage after this is called.
eventCancel = function (e)
{
    if (!e)
        if (window.event) e = window.event;
        else return;
    if (e.cancelBubble != null) e.cancelBubble = true;
    if (e.stopPropagation) e.stopPropagation();
    if (e.preventDefault) e.preventDefault();
    if (window.event) e.returnValue = false;
    if (e.cancel != null) e.cancel = true;
}

这将如何在事件处理程序中使用的示例:

// Handles the click event for each tab
Tabstrip.tabstripLinkElement_click = function (evt, context) 
{
    // Find the tabStrip element (we know it's the parent element of this link)
    var tabstripElement = this.parentNode;
    Tabstrip.showTabByLink(tabstripElement, this);
    return eventCancel(evt);
}

其他回答

返回false表示不采取默认操作,在<a href>的情况下,默认操作是遵循链接。当你对onclick返回false时,href将被忽略。

返回false将阻止导航。否则,位置将成为someFunc的返回值

当使用表单时,我们可以使用'return false'来阻止提交。

function checkForm() {
    // return true to submit, return false to prevent submitting
}
<form onsubmit="return checkForm()">
    ...
</form>

我很惊讶没有人提到onmousedown而不是onclick。的

onclick = '返回假'

没有捕捉浏览器的默认行为,导致(有时不需要的)文本选择发生鼠标下拉,但是

onmousedown = '返回假'

所做的事。

In other words, when I click on a button, its text sometimes becomes accidentally selected changing the look of the button, that may be unwanted. That is the default behaviour that we are trying to prevent here. However, the mousedown event is registered before click, so if you only prevent that behaviour inside your click handler, it will not affect the unwanted selection arising from the mousedown event. So the text still gets selected. However, preventing default for the mousedown event will do the job.

参见event.preventDefault() vs. return false

什么“返回错误”是真的做?

当你调用它时,Return false实际上做了三件非常独立的事情:

event.preventDefault (); event.stopPropagation (); 停止回调执行并在调用时立即返回。

更多信息请参见jquery-events-stop- misuse -return-false。

例如:

当单击此链接时,返回false将取消浏览器的默认行为。

<a href='#' onclick='someFunc(3.1415926); return false;'>Click here !</a>