Вы можете использовать Javascript и захватить событие «keydown» на элементе с самым высоким «tabindex». Если пользователь нажимает клавишу «TAB» (event.keyCode == 9) без клавиши «Shift» (event.shiftKey == false), просто установите фокус на элемент с самым низким tabindex.
Вам также понадобится сделать то же самое в обратном порядке для элемента с самым низким tabindex. Захватите событие «keydown» для этого элемента. Если пользователь нажимает клавишу «TAB» (event.keyCode == 9) С помощью клавиши «Shift» (event.shiftKey == true), то установите фокус на элемент с самым высоким табуиндексом.
Это эффективно предотвратит фокусировку адресной строки с помощью клавиши TAB. Я использую эту технику в своем текущем проекте.
Не забудьте отменить событие keydown, если нажата правильная комбинация клавиш! С JQuery это «event.preventDefault()». В стандартном Javascript я считаю, что вы просто «возвращаете ложь».
Вот JQuery нагруженные фрагмент кода я использую ...
$('#dos-area [tabindex=' + maxTabIndex + ']').on('keydown', function (e) {
if (e.keyCode == 9 && e.shiftKey == false) {
e.preventDefault();
$('#dos-area [tabindex=1]').focus();
}
});
$('#dos-area [tabindex=1]').on('keydown', function (e) {
if (e.keyCode == 9 && e.shiftKey == true) {
e.preventDefault();
$('#dos-area [tabindex=' + maxTabIndex + ']').focus();
}
});
Также имейте в виду, что установка TabIndex = 0 имеет нежелательные результаты на порядок, в котором вещи сосредоточены. Я всегда помню (для моих целей), что tabindex - это индекс на основе 1.
Я хотел бы оставить его в покое , Простым решением является запуск приложения во всплывающем окне. Затем вы можете скрыть поле адреса через 'location = no'. –