我指的是用于事件注册的HTML元素属性,如onsubmit / onreset属性,而不是用于注册事件的dom节点属性。
我问,因为当我注册一个事件处理程序,它返回false给表单的onsubmit / onreset属性时,通过提交/重新设置提交/重置过程。
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>New Web Project</title>
<script type="text/javascript">
function f()
{
return false;
}
</script>
</head>
<body>
<form action="" id = "form" onsubmit = "f()" onreset = "f()">
<input type="text">
<input type = "submit" value = "submit">
<input type = "reset" value = "reset">
</form>
</body>
</html>
答案 0 :(得分:2)
当您通过HTML属性提供事件处理程序时,您提供的字符串会创建一个在事件发生时由浏览器调用的函数。
因此,在您的示例中,onsubmit和onreset属性创建两个等效于:
的函数function() {
f();
}
因为匿名函数不返回false,所以不会阻止提交和重置事件。如果这是您想要做的,您可以执行以下操作之一。
始终阻止默认处理:
onsubmit="f(); return false;" onreset="f(); return false;"
有条件地阻止默认处理(以及更好的代码风格,IMO):
onsubmit="return f();" onreset="return f();"