为什么keyup / keydown不会在'select'上被触发?

时间:2018-04-03 01:20:53

标签: javascript keyboard-events

当客户端在select选项之间移动时,为什么不会触发键盘事件?是否还有其他活动?

如何重现:

  • 专注于选择元素。
  • 打开选择选项。
  • 使用键盘(向上/向下)箭头移动选择选项。

结果:  当您使用向上/向下键盘键移动选项时,不会发送任何事件。

HTML

<!-- The second value will be selected initially -->
<select name="text"> <!--Supplement an id here instead of using 'text'-->
  <option value="value1">Value 1</option> 
  <option value="value2" selected>Value 2</option>
  <option value="value3">Value 3</option>
</select>

JS

function onkeyEvent(evt ){
    console.log(evt);
}
            window.addEventListener('keyup', onkeyEvent, true);
            window.addEventListener('keydown', onkeyEvent, true);
            window.addEventListener('keypress', onkeyEvent, true);

只有在选择了一个选项后才会触发更改事件,而不是在客户端选择(通过选项)时触发更改事件,因此我不接受它作为答案。

1 个答案:

答案 0 :(得分:0)

正如其他人所提到的,要从<select>元素获取关键事件,您可以向元素的change事件添加事件监听器。