Навигация по вкладке клавиш - PullRequest
0 голосов
/ 24 октября 2009

Я хочу узнать, какой элемент находится в фокусе, когда пользователи используют клавишу табуляции для перемещения своего фокуса. Например, есть форма, и пользователи могут использовать клавишу табуляции, чтобы перейти к следующему элементу формы. Я хотел бы знать, какой элемент является текущим в фокусе.

Спасибо, Пол

Ответы [ 3 ]

2 голосов
/ 24 октября 2009

Для многих типов событий можно использовать делегирование событий, при котором один захватывает событие в каком-то содержащем элементе, когда он всплывает в иерархии документа, а затем устанавливает элемент, из которого произошло событие. К сожалению, focus, blur и change события не всплывают.

Однако в реализациях DOM, которые реализуют стандартную модель событий DOM, вместо этого можно использовать фазу захвата, которая перехватывает событие на пути к элементу, в котором оно будет запущено.

Это не работает (сюрприз, сюрприз) в Internet Explorer (IE), который до сих пор не имеет реализации стандартной модели событий, даже в IE8. Однако в IE есть свои события focusin и focusout, которые делают пузырь.

Конечным результатом является то, что, как обычно, нужно написать свой код, чтобы иметь дело с тем, как работают правильные браузеры, а также с тем, как работает IE.

К счастью, это один из тех случаев, когда ppk (он же Peter-Paul Koch) из quirksmode.org уже проделал тяжелую работу: его статья Делегирование событий фокуса и размытия должен рассказать вам все, что вам нужно знать, а также дать краткое объяснение того, как работает делегирование событий.

1 голос
/ 24 октября 2009

используйте событие onFocus для элементов формы, поэтому

<form>
   <input id="fred" type="text" onFocus="alert('focused this');"/>
</form>

проверить http://www.w3.org/TR/html4/interact/scripts.html#adef-onfocus

0 голосов
/ 24 октября 2009

есть события javascript, связанные с фокусом. События onfocus и onblur (противоположные фокусу) можно использовать для обновления переменной, которая сообщает, какой элемент формы в данный момент находится в фокусе.

...