2013-12-17 69 views
1

我有一個特殊用例,我有一系列輸入字段,並根據輸入的字符從當前輸入字段切換到另一個字段。它就像是關鍵字搜索,其中關鍵字是空格分開的或用雙引號括起來。所以,只要我在「印度」這個單詞旁邊加上一個雙引號,它就應該成爲一個關鍵詞,焦點應該移到下一個輸入字段。在帶重音符號的鍵盤中處理雙重事件

現在,我正在使用美國 - 國際(PC)鍵盤佈局的Mac,允許我輸入重音字符。例如,「+ e =ë。

現在發生的事情是,如果我輸入類似」what「的內容,並在第二個引號之後,我點擊空格,則焦點完全移動到新的輸入字段,但是,新的輸入字段已經有一個「預先填入的字符!

一些調試表明,這個鍵盤佈局會導致兩個鍵盤事件被觸發,一個是鍵入「鍵入」,另一個鍵入空格時,這兩個事件(jQuery)的event.keyCode是229,而在第一個case,event.shiftKey是真的,並且它的下一個是false。當你輸入「+ e時,第二個event.keyCode再次是229,它與'不匹配'。

這有助於我區分這兩個事件,但我正在尋找一個更具體的解決方案。截至目前,我還沒有能夠解決這個問題。

如果有人有任何想法,它會很棒。

回答

0

我自己解決了這個問題。這個想法是基於event.shiftKey來區分這兩個事件。當有人輸入雙引號並打算輸入它時,event.shiftKey爲true。第二個事件,在雙引號之後,如果有人按下了一個導致雙引號的字符並且新字符被合併爲重音字符,則新觸發的事件沒有shiftKey = true,但是event.keyCode = 229(這是相同的),所以這可以用來區分。如果新輸入字段仍然接收到幻像,則可以在檢測到這兩個事件後進行修改。