HTML, куда пойдет фокус, если я нажму вкладку? - PullRequest
7 голосов
/ 18 июня 2010

Есть ли какой-нибудь способ узнать, куда будет переходить фокус, когда будет нажата клавиша клавиши Tab, и у определенного элемента есть фокус?

Я думаю о том, что можно использовать таким образом:

var nextElement = whereWillFocusJumpTo(currentElement);

Спасибо!

Ответы [ 6 ]

7 голосов
/ 18 июня 2010

Алгоритм определения порядка вкладок находится здесь: -

http://dev.w3.org/html5/spec/editing.html#sequential-focus-navigation

Следует отметить, что если у нескольких элементов есть tabindex, равный 0, порядок табуляции зависит от платформы, поэтому вы можете убедиться, что все фокусируемые элементы на вашей странице имеют ненулевой tabindex.

6 голосов
/ 18 июня 2010

Используйте атрибут HTML TABINDEX для управления тем, куда вкладка идет.

<input name="email" tabindex="1"></input>
<input name="phone" tabindex="2"></input>
1 голос
/ 18 июня 2010

Было бы очень сложно сделать это с помощью скрипта, по существу (обычно) типы ввода (включая select, textarea, button) и т. Д. Вместе со ссылками (тегами) и тегами меток, привязанными к тегу ввода, могут быть сфокусированы, если не установлено свойство tabindex, следующий фокус в вашей разметке, который является одним из вышеуказанных типов / условий, будет следующим фокусом.

1 голос
/ 18 июня 2010

Может быть, вы можете использовать DOM для перечисления входных данных на странице и чтения свойства tabindex.

0 голосов
/ 18 июня 2010

Я думаю, что для этого можно использовать библиотеку jquery.Listen .

Примерно так:

jQuery('table').listen( 'focusin', 'tr', function(){
    alert("you've focused on a row!");
});
0 голосов
/ 18 июня 2010

Пока вы установили tabindex для всех объектов на странице, вы сможете использовать javascript, чтобы найти следующий шаг от текущего объекта.

...