什么时候打电话给另一个?是否存在onChange会被调用但是onBlur不会被调用?
答案 0 :(得分:155)
当您离开某个对象而没有更改其值时,会触发onBlur
事件。
onChange
事件仅在您更改了字段的值并且失去焦点时才会调用。
您可能需要查看quirksmode's intro to events。这是一个很好的地方,可以在您与浏览器进行交互时获取有关浏览器内容的信息。他的书也很好。
答案 1 :(得分:18)
onblur会触发,而当该字段的值发生变化时,onchange会触发。但是,这些事件并不总是以相同的顺序发生。
在Firefox中,标记出更改的字段将触发onchange然后onblur,它通常会在IE中执行相同操作。但是,如果按下回车键而不是选项卡,在Firefox中它将触发onblur然后onchange,而IE通常会按原始顺序触发。但是,我已经看到IE首先会出现模糊的情况,所以要小心。你不能假设onblur或onchange会在另一个之前发生。
答案 2 :(得分:10)
使事情具体化的一个例子。如果您有这样的选择:
<select onchange="" onblur="">
<option>....
</select>
导航时调用onblur()
。当您从选择中选择其他选项时调用onchange()
- 即您更改当前选择的选项。
答案 3 :(得分:7)
在Firefox中,仅当您选中标签或在输入字段外单击时,onchange才会触发。 Onblur也是如此。不同之处在于,无论你是否在场上改变任何东西,都会触发onblur。 ENTER可能会触发其中一个或两个,但如果您在表单中禁用ENTER以防止意外提交,则您不会知道。
答案 4 :(得分:4)
onBlur是您的焦点不再出现在相关领域的时候。
onblur属性返回当前元素上存在的onBlur事件处理程序代码(如果有)。
onChange是字段值更改的时间。
答案 5 :(得分:4)
我认为这里需要注意的是onBlur()无论如何都会触发。
这是一个有用的主题,但唯一不澄清的是onBlur()每次都会触发。
onChange()只会在值发生变化时触发。
答案 6 :(得分:3)
onChange是指字段内的某些内容发生变化,例如,您在文本输入中写入内容。
onBlur就是当你把焦点从一个领域移开时,例如,你正在用文字输入进行书写而你已经点击了它。
所以它们几乎是一回事,但是对于onChange来说,行为方式就是布尔在输入中需要改变的东西。