javascript - 为什么我在使用变量 'name' 时在 Chrome 调试器中得到错误对象没有方法?

标签 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>

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

最佳答案

问题似乎是您名为 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);

关于javascript - 为什么我在使用变量 'name' 时在 Chrome 调试器中得到错误对象没有方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9076248/

相关文章:

javascript - 在 for 循环中获取类中的每个变量

javascript - 如何使用延迟对象来存储结果并在下次从本地内存中提供服务?

javascript - 如何在 JavaScript 中编辑小部件/片段的样式

javascript - Mvc 验证和加载器

javascript - HTML5中属性的回退解决方案

javascript - 关于事件委托(delegate)的 addEventListener 与 onclick

Javascript addEventListener 麻烦

jquery - 可拖动和可调整大小的 DIV 不起作用

html - 绝对位置不起作用

javascript - eventListener 'resize' 不会更改 Vue.js 中 data() 变量的值