[英]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
因此:
…並且新頁面沒有使用客戶端代碼進行的修改。
您可以在此處采取幾種方法。
最簡單的是停止使用提交按鈕 。
將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.