簡體   English   中英

為什么 preventDefault() 不起作用?

[英]Why is preventDefault() not working?

到目前為止,我一直試圖讓它在沒有運氣的情況下工作。 如果我使用 return false; 它可以工作,但不能與 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>

事件對象是事件處理函數的第一個參數,即onsubmit hit是您從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"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM