我在HTML页面中见过很多这样的链接:
<a href='#' onclick='someFunc(3.1415926); return false;'>Click here !</a>
这里return false的效果是什么?
而且,我通常不会在按钮中看到这种情况。
这在任何地方都指定了吗?在w3.org的一些规范中?
我在HTML页面中见过很多这样的链接:
<a href='#' onclick='someFunc(3.1415926); return false;'>Click here !</a>
这里return false的效果是什么?
而且,我通常不会在按钮中看到这种情况。
这在任何地方都指定了吗?在w3.org的一些规范中?
当前回答
默认情况下,当您单击按钮时,无论您输入了什么值,表单都将被发送到服务器。
然而,这种行为在大多数情况下不太合适,因为我们可能想在发送到服务器之前做一些检查。
因此,当侦听器收到“false”时,提交将被取消。基本上,它的目的是在前端做一些检查。
其他回答
当使用表单时,我们可以使用'return false'来阻止提交。
function checkForm() {
// return true to submit, return false to prevent submitting
}
<form onsubmit="return checkForm()">
...
</form>
我相信它会导致标准事件不发生。
在你的例子中,浏览器不会尝试转到#。
从JavaScript事件中返回false通常会取消“默认”行为——在链接的情况下,它告诉浏览器不要跟踪该链接。
返回false可以防止页面被导航,也可以防止不必要地将窗口滚动到顶部或底部。
onclick="return false"
我很惊讶没有人提到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