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

zac*_*yer 4 html javascript 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>
Run Code Online (Sandbox Code Playgroud)

我试图听取对象的点击,但它给了我一个没有方法错误的对象.

Ste*_*fan 6

问题似乎是你的变量命名namedocument.name未定义的碰撞.重命名变量使其工作;

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

即使这样也会奏效;

document.getElementById("nameId").addEventListener('click', func, false);
Run Code Online (Sandbox Code Playgroud)