Я строю поле ввода текста, предназначенное для ввода и редактирования времени. Одна из частей функциональности требует различных способов сосредоточиться на различных компонентах времени (часы, минуты, секунды), которые я указываю при выделении текста. Прямой выбор возможен с помощью мыши, и это прекрасно работает. Другая функция - клавиатурная навигация.
Большая часть этой функциональности основана на том факте, что я могу обрабатывать события keyPress, подавлять поведение по умолчанию и заменять специальное действие.
В Firefox у меня это работает хорошо. Пользователь может использовать клавиши со стрелками влево / вправо или tab / shift-tab для перемещения между частями времени (и когда они добираются до конца, клавиша следующей вкладки покидает поле и обычно фокусирует следующий элемент).
В Internet Explorer 7 (возможно, другие?) Клавиши со стрелками и вкладка даже не принимаются обработчиком нажатия клавиш. При нажатии клавиш со стрелками выделение текста теряется и курсор перемещается на единицу. Эффект предоставления нескольких полей исчезает, и это приводит к нарушению чувства контроля. Tab также пропускает обработчик и сразу же переключается на следующий фокусируемый элемент.
Есть ли уловки, чтобы перехватить эти ключи?