为什么 preventDefault() 不起作用

Why is preventDefault() not working?

本文关键字:不起作用 preventDefault 为什么      更新时间:2023-09-26
到目前为止,

我一直在尝试让它工作,但没有运气。如果我使用返回假;它有效,但不适用于prevenDefault,我缺少什么吗?谢谢。

<html>
<meta http-equiv = "Content-Type" content = "text/html; charset = utf-8">
<script>
function hit(e) {
e.preventDefault();
}
</script>
<body>
<form onsubmit="hit()">
  <input type="submit" value="submit" />
</form>
<div id="d"> </div>
</body>
</html>

事件对象是事件处理程序函数的第一个参数,onsubmithit 是您从onsubmit调用的函数,并且您不会向其传递任何参数。

将事件处理程序与 JavaScript 绑定,而不是 HTML。

addEventListener("load", bind_event_handlers);
function bind_event_handlers(e) {
    document.querySelector("form").addEventListener("submit", hit);
    function hit(e) {
        e.preventDefault();
    }
}

您必须在内联事件处理程序中显式传递event对象,

<form onsubmit="hit(event)">

但建议对此类任务使用专用的事件处理程序,例如:

document.querySelector("form").addEventListener("submit",function(e){
  e.preventDefault();
},false)
您还可以在

onsubmit中使用 return 来阻止提交表单:

<script>
function hit() {
return false; // Use 'true' to submit the form
}
</script>
<body>
<form onsubmit="return hit();">
  <input type="submit" value="submit" />
</form>
<div id="d"> </div>

onsubmit更改为onsubmit="hit"