无法获得addListener函数

时间:2014-07-23 01:55:33

标签: javascript addeventlistener

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

即。如果有人选择了特定的海滩,它会显示有关狗是否被允许离开该区域的皮带的信息。

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

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

function DisplayBeachZoneInfo () {
    alert("Yep this works");
}

在我尝试填充文本框(称为txtBeachZoneInfo)之前,我刚刚制作了一个测试警告框,但它没有触发任何内容。

自从我完成任何JavaScript以来已经过了一年,所以我不确定语法是否已经改变,所以任何帮助都会受到赞赏。

*编辑* 它是一个从eForm调用的独立.js文件。周围没有HTML。我在这个相同的上下文中使用此方法之前已经完成了它,但它今天不起作用!

* EDIT2 * 就这样我下次知道,我做错了什么才能在我的问题上获得支持。不是防守,只是想知道,所以我可以在将来避免它,并提出更好的问题。

2 个答案:

答案 0 :(得分:2)

如果您检查控制台,则会看到错误。

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

您应该像以下一样使用它:

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

您可能希望将false作为第三个参数useCapture传递,以使其适用于某些旧浏览器。

答案 1 :(得分:0)

结果将以下内容添加到附加到我的eForm的.js文件中。

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

感谢所有试图提供帮助的人。