2012-07-29 83 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鍵 - 不要在用戶瀏覽他們習慣的方式的方式獲得。增加新的功能可能是一件好事,但帶走預期的行爲可能不是。