JavaScript onChange无法使用DOM元素

时间:2016-10-12 15:41:17

标签: 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);
}

我试图检查每次用户输入'apple'输入的内容时,我会在控制台上打印数量。但是通过这样做,它只是第一次通过打印NaN来刷新浏览器时出现,即使我更改了'apple'的输入也无法工作。

有什么想法吗?

提前致谢。

1 个答案:

答案 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,这就是你得到的。