JavaScript onChange无法使用DOM元素

hyp*_*kcb -2 javascript

尝试在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);
}
Run Code Online (Sandbox Code Playgroud)

每次当用户输入'apple'输入内容时,我都会尝试检查,我会在控制台上打印数量.但是通过这样做,它只在第一次通过打印NaN来刷新浏览器时才运行,即使我更改了'apple'的输入也不行.

有任何想法吗?

提前致谢.

ade*_*neo 7

您必须引用该函数,而不是调用它,并且您不需要传入名称以用作获取元素的ID,该元素已在 this

var apple = document.getElementById("apple");

apple.addEventListener("change", validate);

function validate(event){
    var qty = parseInt(this.value, 10);
    console.log(qty);
}
Run Code Online (Sandbox Code Playgroud)

每当您添加括号时,您都会调用该函数,并将返回的任何内容传递给事件处理程序.
由于函数undefined默认返回,这就是你得到的.