当我在名称对象上使用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,但它以未定义的方式返回。当我在名称对象上使用addEventListener时,返回错误

您没有ID为“name”的元素,因此btn评估为undefined。未定义有没有方法的addEventListener

您将需要使用的document.getElementById(“BTN”)

看来是在JavaScript保留,我知道的名字是在很多其他语言的关键字。改变你的代码到这个,它的工作原理

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); 
} 
+0

为你找到了一个解决方案,更新了我的答案。 – Brandon 2012-01-31 06:59:54

您需要定义BTN ...

BTN =的document.getElementById( “BTN”); vs document.getElementById(“name”);