簡體   English   中英

我的addEventListener無法正常工作

[英]My addEventListener does not work properly

事件偵聽器在不到一秒鍾的時間內起作用,然后它不起作用。

index.html文件:

<!DOCTYPE html>
<html>
<head>
    <title>Javascript</title>
</head>
<body>

    <form id="my-form">
        <label id="lbl"></label>
        <button id="next">Next</button>
    </form>

    <script type="text/javascript" src="main.js"></script>
</body>
</html>

main.js文件:

var myForm = document.getElementById("my-form");
var lbl = document.getElementById("lbl");
var nextBtn = document.getElementById("next");

nextBtn.addEventListener("click", displayDate);

function displayDate() {
    lbl.innerHTML = Date();
}

日期顯示不到一秒鍾,然后立即消失。

您必須取消表格提交

 var myForm = document.getElementById("my-form"); var lbl = document.getElementById("lbl"); var nextBtn = document.getElementById("next"); nextBtn.addEventListener("click", displayDate); function displayDate() { lbl.innerHTML = Date(); } document.getElementById('my-form').onsubmit = function() { return false; }; 
 <!DOCTYPE html> <html> <head> <title>Javascript</title> </head> <body> <form id="my-form"> <label id="lbl"></label> <button id="next">Next</button> </form> </body> </html> 

您正在單擊表單內的按鈕元素。 默認按鈕類型為submit因此:

  1. 點擊按鈕
  2. 點擊事件被觸發
  3. JS處理click事件
  4. 表格已提交
  5. 瀏覽器加載新頁面

…並且新頁面沒有使用客戶端代碼進行的修改。


您可以在此處采取幾種方法。

最簡單的是停止使用提交按鈕

type="button"添加到<button>元素。

您還可以防止按鈕的默認行為(停止提交表單):

function displayDate(event) {
    event.preventDefault();
    lbl.innerHTML = Date();
}

問題是您使用表格。 單擊按鈕后,您將重新加載,因此所有設置都會重置。

var myForm = document.getElementById("my-form");
var lbl = document.getElementById("lbl");
var nextBtn = document.getElementById("next");

nextBtn.addEventListener("click", displayDate);


myForm.addEventListener('submit', handleForm);

function handleForm(event) 
 {
 event.preventDefault();
 } 


function displayDate() 
{
 lbl.innerHTML = Date();
}

這樣可以防止提交者重新加載頁面。

暫無
暫無

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

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