2012-07-29 84 views
0

我想知道是否有任何方式通过按Tab键以与TAB键原生实现相同的方式导航Dialog组件?按Enter键浏览GWT/GXT组件

+0

很可能,非常不推荐。用户习惯使用Enter键执行一组定义的操作,导航不是其中之一。 – 2012-07-31 15:20:07

回答

0

虽然我没有通过处理keyDown和keyUp事件来尝试它,但它肯定是可行的。尽管您可能无法以这种方式截取浏览器生成的对话框,而使用Window.alert()创建其他对话框。你如何创建对话框?

0

Tab键是浏览器做的改变重点工作 - 要添加什么特殊的需求,你会发现,标签适用于任何形式在互联网上(除非出于某种原因...明确禁用)。

要使用回车键移动焦点,您必须监听onkeydown事件(焦点通过选项卡更改也会发生onkeydown,因此选择此项以保持一致性),检查它是否为Enter键,如果是,则将焦点移动到列表中的下一个元素。

典型的选项卡焦点行为涉及到浏览器检查页面上元素的tabIndex,并找到页面上的下一个元素具有更高的tabIndex或最近的后续兄弟/表亲元素。我没有一种方法可以轻松实现,所以我将专注于下一个小部件。

GXT 3的FormPanelHelper有一些方便的方法来查找所有领域 - 这个代码可以作为非GXT领域的基础为好。跟踪对话框中找到的字段中的所有FocusEvent和BlurEvent,并使用它来始终跟踪当前关注的字段。向对话框本身添加一个密钥处理程序,以捕获所有关键事件,并检查是否有一个是输入密钥。如果是这样,请确定当前焦点字段的下一个字段,并在其上调用.focus() - 这将触发上述的焦点处理程序,以便您的簿记更新正确。

正如@ eliran米指出,考虑只留下tab键 - 不要在用户浏览他们习惯的方式的方式获得。增加新的功能可能是一件好事,但带走预期的行为可能不是。