Переопределить поведение TabIndex по умолчанию, чтобы сначала выбрать отмеченный элемент - PullRequest
0 голосов
/ 03 августа 2020

У меня есть два переключателя с метками «Да» и «Нет», оба с меткой tabIndex, установленной на 0. По умолчанию установлено значение «Нет». Также они являются настраиваемыми переключателями.

введите описание изображения здесь

Я хочу достичь -

  1. Когда пользователь нажимает клавишу Tab, установленный переключатель должен быть в фокусе. (По умолчанию фокус находится на первом элементе.)
  2. Когда пользователь снова нажимает на вкладку, он должен go определить свое естественное поведение и сосредоточиться на следующем элементе.

Вот псевдокод того, что я пробовал:

isTab = false
isChecked = false

switch(event.keyCode):
   case 9:
     if (!isTab):
       isTab = true;
       event.preventDefault();
       for (let radio of radioButtons):
         if radio.isChecked:
            radio.focus()
            isChecked = true;
     
       if (!isChecked):
          // if none are selected, focus on first
          radioButtons[0].focus()
          

Это работает только в первый раз, когда по умолчанию выбран вариант «Нет». Но когда я выбираю Да и нажимаю вкладку, фокус остается на Да и не переходит к следующему элементу.

Я хочу сначала сохранить фокус на выбранном радио, а затем на следующей вкладке нажмите I. хотите переместить фокус как обычно.

Помощь очень признательна!

...