Javascript Can';无法使addListener函数工作

Javascript Can';无法使addListener函数工作,javascript,addeventlistener,Javascript,Addeventlistener,我有一个组合框,其中有一个值列表,我想用它来触发另一个输入字段中的文本 也就是说,如果有人选择了一个特定的海滩,它会显示是否允许狗在该区域脱离皮带的信息 我已经编写了几个函数,但它似乎不想触发 function initListeners(){ addEventListener(document.forms[0].cboBeachSelect, 'change', DisplayBeachZoneInfo); } function DisplayBeachZoneInfo

我有一个组合框,其中有一个值列表,我想用它来触发另一个输入字段中的文本

也就是说,如果有人选择了一个特定的海滩,它会显示是否允许狗在该区域脱离皮带的信息

我已经编写了几个函数,但它似乎不想触发

function initListeners(){       
    addEventListener(document.forms[0].cboBeachSelect, 'change', DisplayBeachZoneInfo);
}

function DisplayBeachZoneInfo () {
    alert("Yep this works");
}
在我尝试填充文本框(称为txtBeachZoneInfo)之前,我刚刚弹出了一个测试警报框,但它没有触发任何东西

我已经有好几年没有使用JavaScript了,所以我不确定语法是否已经改变,希望能提供帮助

*编辑* 它是从eForm调用的独立.js文件。周围没有HTML。我以前在同样的环境中使用过这个方法,但今天它就不起作用了

*EDIT2*
让我知道下一次,我做了什么错误的事情,在我的问题上赢得了反对票。不是防御性的,只是想知道,这样我以后就可以避免,问更好的问题。

如果你检查你的控制台,你会看到错误

是实例的方法,而不是全局函数

您应该像这样使用它:

document.forms[0].elements.cboBeachSelect
    .addEventListener('change', DisplayBeachZoneInfo);

您可能希望将
false
作为第三个参数
useCapture
传递,以使其在一些旧浏览器上工作。

将以下内容添加到附加到我的eForm的.js文件中可以工作

  if (window.addEventListener) {
    window.addEventListener('load', initListeners, false);
  }
  else if (window.attachEvent) {
    window.attachEvent('onload', initListeners );
  }

感谢所有试图帮助您的人。

您可以发布HTML的相关部分来支持您的问题吗?非主题:您应该使用
document.forms[0].elements.cboBeachSelect
,以及
elements
。这是获取表单元素的正确方法,即使大多数浏览器不需要它。这不是使用
addEventListener
的方式。。。。它的语法没有改变。谢谢@Derek朕會功夫, 但是你能告诉我应该如何使用它吗?你也没有正确地利用它。您应该学会使用浏览器的开发工具。你的控制台可能会出现错误。好的,谢谢你,我感谢你的帮助。我已经更改了它,当我更改组合框中的值时,它仍然不会抛出我的警报框。我还可以尝试其他想法吗?您可能是指“实现的对象”。:)@罗布:是的。这不一样吗?
addEventListener
是web浏览器中的一个全局函数(
window
确实有此方法);)@奥利奥只是在吹毛求疵。事件目标是由各种对象实现的接口(因此它的名称为),它不是“类”或构造函数,因此不能创建它的实例,但可以创建实现它的对象的实例。