【发布时间】:2013-08-15 10:24:09
【问题描述】:
我有一个包含多个文本输入字段的大型表单。本质上,我需要处理 所有字段 的 onchange 事件和 一些 字段的 onblur 事件。当对字段进行更改并且该字段失去焦点时,两个事件都会触发(这是正确的行为)。唯一的问题是我想处理onblur
在我处理 onchange 事件之前的事件。
在 ie 和 Firefox 中进行一些测试后,似乎默认行为是在 onblur 之前触发 onchange 事件。我一直在使用下面的代码作为测试...
<html>
<body >
<input type="text" value="here is a text field" onchange="console.log('Change Event!')" onblur="console.log('Blur Event!')" >
</body>
</html>
这让我想到了我的问题:
似乎这种行为在浏览器中是一致的。为什么
onchange会先火?由于我无法为每个输入元素处理
onblur事件,有没有办法让onblur在处理onchange事件之前触发?
【问题讨论】:
-
您的标签中有
jQuery。你在用吗?如果是这样,您可以通过检查处理程序中的event.type,以您想要的任何顺序处理事件。 -
@DevlshOne - 但是你不能改变他们被解雇的顺序..
-
@DevlshOne 我在我的实际项目中使用它,所以它可以用于解决方案。
-
不,你不能,但你可以按照你想要的任何顺序处理它们。
-
在 onchange 调用中使用 setTimeout 调用来延迟执行。
标签: javascript jquery html dom javascript-events