2009-04-24 48 views

回答

137

当你离开对象而不必改变其值时,将触发onBlur事件。

onChange事件仅在您更改字段的值并失去焦点时才会调用。

你可能想看看quirksmode's intro to events。当您与浏览器进行交互时,这是一个了解浏览器中发生的事情的好地方。他的书也很好。

+1

你的关于quirksmode的链接不要谈论模糊,只是基本事件 – stackdave 2018-01-19 08:04:02

3

的onChange是,当一个领域内的东西变化了,例如,你写在文本输入的东西。

onBlur是当你把焦点从一个领域,例如,你正在写一个文本输入,你点击了它。

因此,他们几乎是一样的事情,但onChange行事的方式onBlur做了一些事情,在输入需要改变。

4

的onblur是当你的重点不再是对有问题的领域。

onblur属性返回当前元素上存在的onBlur事件处理程序代码(如果有的话)。

onChange是当字段的值发生变化时。

9

一个使事情具体化的例子。如果你有这样的选择:

<select onchange="" onblur=""> 
    <option>.... 
</select> 

当您离开的onblur()被调用。当您从选择中选择不同的选项时,即调用onchange(),即更改当前选定的选项。

+1

另一个例子:在`number`类型的输入中,点击向上/向下箭头将触发一个改变事件(但不是模糊事件),而打字只有在领域失去焦点时才会导致更改事件。 – 2015-09-21 16:47:29

17

的onblur当字段失去焦点火灾,而火灾电平变化时字段的值的变化。但是,这些事件并不总是以相同的顺序发生。

在Firefox中,从已更改的字段中跳出将会触发onchange然后onblur,并且它通常会在IE中执行相同操作。但是,如果您按下Enter键而不是Tab,则在Firefox中将会触发onb​​lur,然后onchange,而IE通常会按原始顺序触发。但是,我已经看到IE会首先启动模糊的情况,所以要小心。你不能认为onblur或onchange会在另一个之前发生。

7

在Firefox中只有平变化的火灾时,使用Tab键或点击输入框之外。 Onblur也是如此。不同的是,无论你是否在场上改变了任何东西,onblur都会触发。有可能ENTER会触发其中的一个或两个,但如果您在表单中禁用了ENTER以防止意外提交,则您不会知道这一点。

3

我认为这里很重要的一点是onBlur()不管。

这是一个有用的线程,但它唯一没有说明的是onBlur()将每一次都触发。

的onChange()当值改变才会触发。

相关问题