使用变量'name'时,为什么我在Chrome调试器中没有使用错误对象?

时间:2012-01-31 08:03:04

标签: javascript html addeventlistener

<form name="email" method="post" action="forms/email.php">
    <div id="email">
Sign up for Email
<input type="hidden" value="<?php $page; ?>" name="page">
<input class="searchtext" name="name" type="text" value="Name" id="nameId"/>
<input class="searchtext" name="email" type="text" value="Email" id="emailId"/>
    <a id="submit" class="submitbutton" onClick="document.getElementById('search-form').submit()"></a>
    </div>
 </form>
<script type="text/javascript">
    var name = document.getElementById("nameId");
    name.addEventListener("click",func,false);
    function func() {
        alert(name.value)
    }
</script>

我正在尝试侦听对象的单击,但它给了我一个没有方法错误的对象。

1 个答案:

答案 0 :(得分:6)

问题似乎是名为name的变量与未定义的document.name冲突。重命名变量使其有效;

if (el.addEventListener) {  
  el.addEventListener('click', func, false);
} else if (el.attachEvent){  
  el.attachEvent('onclick', func); // IE < 9
}

即使这样也行不通;

document.getElementById("nameId").addEventListener('click', func, false);