對於這個簡單的問題,我提前表示歉意,但是我遲到了,我不想睡覺,直到我開始工作爲止......並且我知道我的思維在最後幾個小時工作在其他部分。JS addEventListener不能正常工作
基本上,我只是想通過分配addEventListener
來獲得提交按鈕來調用add()
函數。當我點擊按鈕時,它會清除表單,但不會執行其他任何操作。如果我填寫這些字段,然後在Chrome的JS控制檯中調用add()
,它可以完美地工作......顯然,事件偵聽器不會被添加到按鈕中,我不想在內聯中調用該函數。提前致謝。
HTML:
<ul> <li> <label for="firstname">First Name:</label> <input type="text" id="firstname"/> </li> <li> <label for="lastname">Last Name:</label> <input type="text" id="lastname"/> </li> <li> <label for="email">Email:</label> <input type="text" id="email"/> </li> <li> <label for="subject">Subject:</label> <input type="text" id="subject"/> </li> <li> <input type="submit" value="Save" id="btnSave"/> </li> </ul>
JS:
var rolodex = localStorage.getItem('rolodex'); //load stored data if there is any
window.onload = function() {
rolodex = JSON.parse(rolodex);
if(rolodex === null) { //if no data, initialize an empty array
rolodex = [];
} else {
console.log(rolodex);
}
};
var add = function(){
var SME = JSON.stringify({
firstname:document.getElementById('firstname').value,
lastname:document.getElementById('lastname').value,
email:document.getElementById('email').value,
subject:document.getElementById('subject').value
});
rolodex.push(SME);
localStorage.setItem('rolodex', JSON.stringify(rolodex));
alert("Saved");
};
var submit = function(){
var btnSave = document.getElementById('btnSave');
btnSave.addEventListener('click', add(), false);
};
對不起,我不能在我的手機上覆制,但你有沒有嘗試隱式添加偵聽器提交。 –