function __setOnchangeEvent()
{
var inputs = document.getElementsByTagName('input');
if (inputs)
{
for (var i = 0; i < inputs.length; i++)
{
if (inputs[i].id.indexOf('display_hidden') >= 0)
{
console.debug("outer1: " + inputs[i].outerHTML);
//inputs[i].addEventListener("onchange", __hideInfoIcon);
inputs[i].onchange = '__hideInfoIcon';
console.debug("outer2: " + inputs[i].outerHTML);
}
}
}
} __setOnchangeEvent();
调试输出清楚地显示onchange值未设置。
我的错误在哪里?
答案 0 :(得分:2)
调试输出清楚地显示onchange值未设置。
不,它没有。调试输出只显示HTML,因为这是您显示的内容:
console.debug("outer2: " + inputs[i].outerHTML);
如果您希望以某种方式看到HTML 更改只是因为您正在设置事件处理程序,那么您就错了。 HTML和DOM事件是两回事。
您可以在内嵌HTML中分配事件处理程序,但事件本身不是HTML显示的一部分。
您可以通过调用该事件来测试事件处理程序,而不是通过查看HTML标记来测试。
我的错误在哪里?
除此之外,这看起来也不正确:
inputs[i].onchange = '__hideInfoIcon';
这不是一个功能,它只是一个字符串。如果您有该名称的函数,请将其用作事件处理程序:
inputs[i].onchange = __hideInfoIcon;