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

时间:2009-04-24 09:13:03

标签: html

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

7 个答案:

答案 0 :(得分:155)

当您离开某个对象而没有更改其值时,会触发onBlur事件。

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

您可能需要查看quirksmode's intro to events。这是一个很好的地方,可以在您与浏览器进行交互时获取有关浏览器内容的信息。他的书也很好。

答案 1 :(得分:18)

当一个字段失去焦点时,

onblur会触发,而当该字段的值发生变化时,onchange会触发。但是,这些事件并不总是以相同的顺序发生。

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

答案 2 :(得分:10)

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

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

导航时调用onblur()。当您从选择中选择其他选项时调用onchange() - 即您更改当前选择的选项。

答案 3 :(得分:7)

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

答案 4 :(得分:4)

onBlur是您的焦点不再出现在相关领域的时候。

  

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

onChange是字段值更改的时间。

答案 5 :(得分:4)

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

这是一个有用的主题,但唯一不澄清的是onBlur()每次都会触发。

onChange()只会在值发生变化时触发。

答案 6 :(得分:3)

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

onBlur就是当你把焦点从一个领域移开时,例如,你正在用文字输入进行书写而你已经点击了它。

所以它们几乎是一回事,但是对于onChange来说,行为方式就是布尔在输入中需要改变的东西。