Почему keyup/keydown не срабатывает при «выборе»?

Почему никакое событие клавиатуры не запускается, когда клиент перемещается между параметрами 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);

Событие изменения запускается только после выбора параметра, а не во время выбора клиентом (просматривая параметры), поэтому я не принимаю его как ответ.


person themihai    schedule 03.04.2018    source источник
comment
select используют событие 'change'.   -  person StackSlave    schedule 03.04.2018
comment
вы можете использовать change   -  person Get Off My Lawn    schedule 03.04.2018
comment
change запускается, когда параметр уже выбран, а не в то время, когда клиент просматривает параметры.   -  person themihai    schedule 03.04.2018
comment
Как говорит OP, событие change запускается только при новом выборе, тогда как они хотят зафиксировать событие при переключении между значениями option с помощью клавиатуры до выбора нового выбора.   -  person fubar    schedule 03.04.2018


Ответы (1)


Как уже упоминалось, для получения ключевых событий из элемента <select> вы можете добавить прослушиватель событий в элемент change событие.

person Meghan    schedule 03.04.2018