请问这个onload事件被触发几次?

jacobishao 2015-04-26 01:39:59

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script type="text/javascript">
function f() {
var inputs = window.document.getElementsByTagName("input");
for (var key in inputs) {
var element = inputs[key];

element.onblur = inputOnblur;
}
}
function inputOnblur() {
if (this.value=="")
this.style.background = "red";
else
this.style.background = "white";



}

</script>

</head>
<body onload="f()" >

<input type="text" />
<input type="text" />
<input type="text" />

</body>
</html>
...全文
640 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
jacobishao 2015-04-27
  • 打赏
  • 举报
回复
我明白了。太感谢le了
xuzuning 2015-04-27
  • 打赏
  • 举报
回复
这个函数只在 <body onload="f()" > 时执行了一次
function f() {
    var inputs = window.document.getElementsByTagName("input");
    for (var key in inputs) {
        var element = inputs[key];
        element.onblur = inputOnblur; //给每个 input 标记添加一个 onblur (失去焦点)事件处理函数
    }
 }
函数 inputOnblur 是这样定义的
function inputOnblur() {
  if (this.value=="")
    this.style.background = "red";
  else
    this.style.background = "white";
}
你怎么说是没有定义呢?
jacobishao 2015-04-27
  • 打赏
  • 举报
回复
引用 6 楼 jslang 的回复:
[quote=引用 5 楼 jacobishao 的回复:] 就是在我不填第一个文本框的值,它的背景变红,填了就又能变白色,不是只能触发一次吗?也就是只调用一次f()函数啊?
onload事件是只触发一次. 但你在onload事件中又为所有文本框设置了onblur事件 onblur事件是可以触发多次的. 你之后触发的都是onblur事件. [/quote]我并未给onblur指定处理函数啊?
圆㺭 2015-04-26
  • 打赏
  • 举报
回复
只触发了一次
xuzuning 2015-04-26
  • 打赏
  • 举报
回复
一次!还能几次?
似梦飞花 2015-04-26
  • 打赏
  • 举报
回复
你触发了一次以上?
天际的海浪 2015-04-26
  • 打赏
  • 举报
回复
引用 5 楼 jacobishao 的回复:
就是在我不填第一个文本框的值,它的背景变红,填了就又能变白色,不是只能触发一次吗?也就是只调用一次f()函数啊?
onload事件是只触发一次. 但你在onload事件中又为所有文本框设置了onblur事件 onblur事件是可以触发多次的. 你之后触发的都是onblur事件.
jacobishao 2015-04-26
  • 打赏
  • 举报
回复
就是在我不填第一个文本框的值,它的背景变红,填了就又能变白色,不是只能触发一次吗?也就是只调用一次f()函数啊?
jacobishao 2015-04-26
  • 打赏
  • 举报
回复
为什么能反复改变文本框的值呢?

87,995

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧