什么时候调用一个而不是另一个?会不会出现调用onChange但不调用onBlur的情况?
发布于 2009-04-24 09:15:13
当您从对象移开而不一定更改其值时,将激发onBlur
事件。
仅当您更改了字段的值并失去焦点时,才会调用onChange
事件。
你可能想看看quirksmode's intro to events。这是一个很好的地方,当你与浏览器交互时,你可以获得浏览器中正在发生的事情的信息。他的书也很好。
发布于 2009-05-16 23:34:00
onblur在字段失去焦点时触发,而onchange在该字段的值发生变化时触发。然而,这些事件并不总是以相同的顺序发生。
在Firefox中,跳出已更改的字段将触发onchange然后onblur,在IE中通常也会执行相同的操作。然而,如果你按enter键而不是Tab键,在Firefox中它会触发onblur然后onchange,而IE通常会按原始顺序触发。然而,我见过IE也会先触发模糊的情况,所以要小心。您不能假设onblur或onchange会在另一个之前发生。
发布于 2009-04-24 09:19:50
一个让事情具体化的例子。如果您的选择如下所示:
<select onchange="" onblur="">
<option>....
</select>
当您导航离开时,将调用onblur()
。当你从选择中选择了一个不同的选项时,onchange()
就会被调用--也就是说,你改变了当前选择的内容。
https://stackoverflow.com/questions/785099
复制相似问题