您/这是将事件监听器添加到/ tag的正确方法吗?

时间:2011-11-30 16:49:36

标签: javascript html

如果所有输入都有效,我正试图在我的页面上随时更改某些内容时进行检查。我认为最好的方法是做到这一点,而不是将函数附加到每个输入将是将它放在整个页面上(因此html / body标签),但这似乎并没有发生任何事情。我的代码如下:

<body onchange="removewarn()">
.
form elements
.
.
</body>

和功能

function removewarn(){

if(all input is valid)
{
document.getElementById('warning').style.visibility="hidden";
}
}

如果所有元素都没有填写或无效,则删除页面上的警告。

2 个答案:

答案 0 :(得分:1)

onchange事件仅适用于Form元素,因此您必须将其添加到每个表单元素。然而!有一种更简单,更清洁的方法,而不是内联:

for(i=0; i<document.FormName.elements.length; i++)//gets all the elements of your form.
{
    document.FormName.elements[i].onchange = removewarn();//adds the removewarn function to the onchange handler of this element.
}

答案 1 :(得分:0)

只有输入,选择和textareas支持onchange事件,这就是为什么如果你试图将它绑定到body标签,你的函数永远不会被调用。

您必须在每个输入上绑定它,或者使用类似jQuery's delegate method的内容。