我正在构建一个专门用于输入和编辑时间的文本输入字段。功能的其中一个部分要求以各种方式关注时间的不同组成部分(小时、分钟、秒),我通过文本选择来表示。可以用鼠标直接选择,效果很好。另一个功能是键盘导航。
此功能的大部分依赖于我能够处理 keyPress 事件、抑制默认行为并替代特殊操作这一事实。
在 Firefox 中,我可以很好地工作。用户可以使用左/右箭头键或 tab/shift-tab 在部分时间之间移动(当他们到达末尾时,下一个 tab 键将离开该字段并正常聚焦下一个元素)。
在 Internet Explorer 7(可能还有其他?)中,按键处理程序甚至不接收箭头键和选项卡。如果按下箭头键,文本选择将丢失,光标移动一格。提供多个字段的效果消失了,导致控制感被破坏。Tab 似乎也跳过了处理程序,并立即翻转到下一个可聚焦的元素。
拦截这些密钥有什么技巧吗?