我的源代码中有很多类似下面的实例:
<input id="a" type="text" name="a" maxlength="40"
onfocus="ThisOnFocus(this)" onkeydown="ThisOnKeyDown(this)" onkeyup="ThisOnKeyUp(this)" onblur="ThisOnBlur(this)"/>
每个输入标签都以 onfocus
、onkeydown
、onkeyup
和 onblur
函数调用结束。
我想做的是全局指定所有输入标签在这些事件上调用这些函数。在 JavaScript 中可以做到这一点吗?
编辑:我试过将它放在脚本部分,但我的函数都没有被调用:
document.onload = function() { var inputs = document.getElementsByTagName('input');
for (i = 0; i < inputs.length; i++) {
inputs[i].onfocus = ThisOnFocus;
inputs[i].onblur = ThisOnBlur;
inputs[i].onkeyup = ThisOnKeyUp;
inputs[i].onkeydown = ThisOnKeyDown;
}
}
编辑:此外,区分输入复选框和文本字段可能并不重要,但这些功能都只与文本字段有关。
最佳答案
您可以使用捕获和冒泡。请注意,对于 focus 和 blur 事件,需要捕获。或者,您可以使用 focusin 和 focusout 事件。
关于javascript - 可以通过标签调用全局函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8269193/