当我在名称对象上使用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);
}
答
您需要定义BTN ...
BTN =的document.getElementById( “BTN”); vs document.getElementById(“name”);
为你找到了一个解决方案,更新了我的答案。 – Brandon 2012-01-31 06:59:54