当我在名称对象上使用它时,addEventListener返回一个错误

时间:2012-01-31 06:09:32

标签: javascript html object methods addeventlistener

<input type="text" id="name" />

<script>
    var name = document.getElementById("name");

    name.addEventListener("focus",select,false);

    function select() {
      console.log("Focused!");
    }
</script>

我在全局范围内创建了一个名为name的变量,并选择了nameId元素。然后我在对象上调用addEventListener,但它返回为未定义的方法。

2 个答案:

答案 0 :(得分:1)

您没有ID为“name”的元素,因此btn的计算结果为undefined。 Undefined没有方法addEventListener

您需要使用document.getElementById('btn')

出现名称在javascript中保留,我知道name是许多其他语言中的关键字。将您的代码更改为此可以正常工作

var nme = document.getElementById("nameId");
var email = document.getElementById("emailId");
var submit = document.getElementById("submit");

if(window.addEventListener) {
    nme.addEventListener("focus",select,false);//This is where I get the error
    nme.addEventListener("blur",deselect,false);
    email.addEventListener("focus",select,false);
    email.addEventListener("blur",deselect,false);
    submit.addEventListener("press",validate,false);
} else {
    nme.attachEvent("onfocus",select);
    nme.attachEvent("onblur",deselect);
    email.attachEvent("onfocus",select);
    email.attachEvent("onblur",deselect);
    submit.attachEvent("onpress",validate);
}

答案 1 :(得分:0)

你需要定义btn ...

btn = document.getElementById(“btn”); vs document.getElementById(“name”);