选择Element onChange事件是否未触发?

时间:2011-07-01 17:26:43

标签: javascript html

我有一个带有onChange事件的select元素,当我点击选择框并在其中选择一个新值时, 会触发。但是,当我选中选择框并按向上或向下箭头更改选择框的值时,事件不会触发。

我正在使用jQuery().change(function(){ ... });来设置事件

4 个答案:

答案 0 :(得分:2)

当您切换到<select>元素时,只有按Enter键才会触发更改事件。

答案 1 :(得分:1)

要激活onChange(),必须更改 input必须blur() - ed(焦点移到别处);这就是为什么它会在你的第一种情况下发生,而不是在第二种情况下发生。

  

更改事件在其值更改时发送到元素。此活动仅限于<input>元素,<textarea>框和<select>元素。对于选择框,复选框和单选按钮,当用户使用鼠标进行选择时会立即触发事件,但对于其他元素类型,事件将延迟,直到元素失去焦点。

参考:

答案 2 :(得分:1)

正如其他人所说,变化事件直到模糊事件才会发生。您还需要监控密钥,以捕获正在使用箭头键更改值的人。

监控密钥和更改,

$('select').bind('change keyup', function() {
   // Handle
});

http://jsfiddle.net/robert/Je26w/

答案 3 :(得分:1)

您可以在blur的{​​{1}}上触发keyup事件,然后返回select,这将触发更改:

focus

示例:http://jsfiddle.net/niklasvh/XEg36/