event.preventDefault() не работает в Firefox

146
15 марта 2019, 16:10

С помощью стрелок на клавиатуре нужно перемещать фокус по ряду селектов. Чтобы избежать смены options при перемещении по селектам применяется event.preventDefault(). В Хроме все работает (фокус перемещается по селектам не меняя options в них), но в Firefox не отрабатывает и при перемещении по селектам переключаются options c тех селектов с которых уходит фокус. stopPropagation stopImmediatePropagation тоже не помогает.

let focus = document.getElementsByClassName('results'); 
let key = 1; 
 
document.addEventListener('keydown', (event) => { 
 
  const keyName = event.key; 
  if (keyName === 'ArrowDown') { 
 
    event.preventDefault(); 
    event.stopPropagation(); 
    event.stopImmediatePropagation(); 
 
    focus[key].focus(); 
    key++; 
 
    if (key >= 3) { 
      key = 0 
    } 
 
  } 
});
<select class="results"> 
  <option>1</option> 
  <option>2</option> 
  <option>3</option> 
</select> 
<select class="results"> 
  <option>1</option> 
  <option>2</option> 
  <option>3</option> 
</select> 
<select class="results"> 
  <option>1</option> 
  <option>2</option> 
  <option>3</option> 
</select> 
 
 
   

READ ALSO
Невыполненые обещания JS

Невыполненые обещания JS

Если постоянно не выполнять обещания в js, ни reject, ни resolve, то будут ли утечки памяти?

155
поиск на страничке

поиск на страничке

Народ, подскажите новичкуЕсть URL странички в интернете, там есть параграф , который я хотел бы читать с помощью JS и отображать у себя на страничке...

116
Как сделать insert with update?

Как сделать insert with update?

Есть таблица A(id, b_id, value) в которой столбец b_id ссылается на столбец id таблицы B(id, value)Раньше значение value хранилось в таблице A, но сейчас добавилась...

141
DateTime переменную внести в ДБ

DateTime переменную внести в ДБ

Есть переменная DateTime^ date, нужно внести её значение в базу данных MYSQL в формате yyyy-MM-dd HH:ss:mm , как конвертировать значение в данный формат? C++ cli

139