Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 这是向<;添加偶数侦听器的正确方法吗;HTML>/&书信电报;车身>;标签?_Javascript_Html - Fatal编程技术网

Javascript 这是向<;添加偶数侦听器的正确方法吗;HTML>/&书信电报;车身>;标签?

Javascript 这是向<;添加偶数侦听器的正确方法吗;HTML>/&书信电报;车身>;标签?,javascript,html,Javascript,Html,我正在尝试创建一个函数来检查页面上的任何更改是否所有输入都有效。我认为最好的方法是将函数放在整个页面上(因此是html/body标记),而不是将函数附加到每个输入上,但这似乎不起作用,因为什么都没有发生。我的代码如下所示: <body onchange="removewarn()"> . form elements . . </body> 要点是,如果所有元素都未填写或无效,则删除页面上的警告。onchange事件仅适用于表单元素,因此您必须将其添加到每个表单元素中。然

我正在尝试创建一个函数来检查页面上的任何更改是否所有输入都有效。我认为最好的方法是将函数放在整个页面上(因此是html/body标记),而不是将函数附加到每个输入上,但这似乎不起作用,因为什么都没有发生。我的代码如下所示:

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

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

onchange事件仅适用于表单元素,因此您必须将其添加到每个表单元素中。然而!有一种比内联操作更简单、更干净的方法:

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.
}

for(i=0;i只有输入、选择和文本区域才支持
onchange
事件,这就是为什么如果您尝试将函数绑定到body标记,将永远不会调用该函数


你必须要么把它绑定到每一个输入上,要么使用类似的东西。

我认为你的想法是可以的,但是我怀疑身体“Onchange”句柄是正确的机制。考虑使用KEPress处理器,那么我的问题是:你能有不止一个“Onchange”吗?单个表单元素上的事件?是的,但最好的方法可能是将单个函数绑定到onchange事件,如果需要在不同的函数中分离逻辑,则让此函数调用其他函数。
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.
}