尝试在JavaScript中输入onchange侦听器时遇到了问题:
var apple = document.getElementById("apple");
apple.addEventListener("change", validate("apple"));
function validate(fruitName){
var qty = parseInt(document.getElementById(fruitName).value);
console.log(qty);
}
我试图检查每次用户输入'apple'输入的内容时,我会在控制台上打印数量。但是通过这样做,它只是第一次通过打印NaN来刷新浏览器时出现,即使我更改了'apple'的输入也无法工作。
有什么想法吗?
提前致谢。
答案 0 :(得分:7)
您必须引用该函数,而不是调用它,并且您不需要传入名称以用作获取元素的ID,该元素已在this
var apple = document.getElementById("apple");
apple.addEventListener("change", validate);
function validate(event){
var qty = parseInt(this.value, 10);
console.log(qty);
}
每当您添加括号时,您都会调用该函数,并将返回的任何内容传递给事件处理程序
函数默认返回undefined
,这就是你得到的。