AddEventListener возвращает ошибку, когда я использую его на объекте name - PullRequest
0 голосов
/ 31 января 2012
<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 ]

1 голос
/ 31 января 2012

У вас нет элемента с идентификатором "name", поэтому btn оценивается как неопределенное.Undefined не имеет метода addEventListener

Вам нужно будет использовать document.getElementById ('btn')

оно появляется name зарезервировано в 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 голосов
/ 31 января 2012

вам нужно определить btn ...

btn = document.getElementById ("btn"); vs document.getElementById ("name");

...