HTML中的onBlur和onChange属性有什么区别?

pac*_*man 111 html

什么时候打电话给另一个?是否存在onChange会被调用但是onBlur不会被调用?

Mar*_*son 162

onBlur当您离开对象而不必更改其值时,将触发该事件.

onChange只有在更改了字段的值并且它失去焦点时才会调用该事件.

您可能想看看quirksmode的事件介绍.这是一个很好的地方,可以在您与浏览器进行交互时获取有关浏览器内容的信息.他的书也很好.

  • 你关于 quirksmode 的链接不谈论模糊,只是基本事件 (3认同)

小智 20

当一个字段失去焦点时,onblur会触发,而当该字段的值发生变化时,onchange会触发.但是,这些事件并不总是以相同的顺序发生.

在Firefox中,标记出更改的字段将触发onchange然后onblur,它通常在IE中执行相同操作.但是,如果按下回车键而不是选项卡,在Firefox中它将触发onb​​lur然后onchange,而IE通常会按原始顺序触发.但是,我已经看到IE首先会出现模糊的情况,所以要小心.您不能假设onblur或onchange将在另一个之前发生.


Bri*_*new 10

一个让事情变得具体的例子.如果您有这样的选择:

<select onchange="" onblur="">
  <option>....
</select>
Run Code Online (Sandbox Code Playgroud)

onblur()当您离开时被调用.该onchange()即你改变就是它的当前选择-当你从选择不同的选项调用.


Bet*_*ock 7

在Firefox中,onchange仅在您选项卡时触发,或者在输入字段外单击.Onblur也是如此.不同之处在于,无论你是否在场上改变任何东西,都会触发onb​​lur.ENTER可能会触发其中一个或两个,但如果您在表单中禁用ENTER以防止意外提交,则您不会知道.


php*_*der 7

我认为重要的是要注意这里onBlur()无论如何都会发生。

这是一个有用的线程,但它唯一没有澄清的是onBlur()每次都会触发。

onChange()仅当值更改时才会触发。


Sam*_*152 6

onChange 是指字段中的某些内容发生更改,例如,您在文本输入中写入内容。

onBlur 是当您将焦点从某个字段移开时,例如,您正在文本输入中书写,然后单击了它。

所以实际上它们几乎是相同的事情,但是 onChange 的行为方式与 onBlur 在输入中需要更改的方式相同。


Óla*_*age 5

onBlur当你的注意力不再集中在相关领域时。

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

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