Javascript 在重音键盘中处理双重事件
我有一个特殊的用例,其中我有一系列的输入字段,我根据键入的字符从当前输入字段切换到另一个输入字段。它有点像关键字搜索,关键字用空格分隔或用双引号括起来。因此,只要我在“India”这样的词周围加上双引号,它就应该成为一个关键词,焦点应该转移到下一个输入字段 现在,我使用的是带有美国国际(PC)键盘布局的Mac电脑,它允许我输入重音字符。例如,“+e= 现在发生的事情是,如果我键入类似“What”的内容,在第二个引号之后,我点击空格,焦点会完美地移动到新的输入字段,但是,新的输入字段中已经预先填充了一个“字符” 一些调试表明,此键盘布局导致触发两个Javascript 在重音键盘中处理双重事件,javascript,jquery,keyboard,jquery-events,Javascript,Jquery,Keyboard,Jquery Events,我有一个特殊的用例,其中我有一系列的输入字段,我根据键入的字符从当前输入字段切换到另一个输入字段。它有点像关键字搜索,关键字用空格分隔或用双引号括起来。因此,只要我在“India”这样的词周围加上双引号,它就应该成为一个关键词,焦点应该转移到下一个输入字段 现在,我使用的是带有美国国际(PC)键盘布局的Mac电脑,它允许我输入重音字符。例如,“+e= 现在发生的事情是,如果我键入类似“What”的内容,在第二个引号之后,我点击空格,焦点会完美地移动到新的输入字段,但是,新的输入字段中已经预先填充
keyup
事件,一个是在键入“时,另一个是在键入空格时。这两个事件(jQuery)的event.keyCode
为229,在第一种情况下,event.shiftKey
为true,在下一种情况下为false。键入“时,情况相同。”+e,第二个事件。keyCode
又是229,这与ë不匹配
这有助于区分这两个事件,但我正在寻找一个更具体的解决方案。到目前为止,我还没能解决这个问题
如果有人有什么想法,那就太好了。我自己解决了这个问题。其思想是根据event.shiftKey区分这两个事件。当有人键入双引号并打算键入它时,event.shiftKey为true。第二个事件,在双引号之后,如果有人按下导致双引号的字符,并且新字符被组合为重音字符,则新激发的事件没有shiftKey=true,而是event.keyCode=229(相同),因此可以使用它来区分。如果一个新的输入字段仍然收到“幻影”,则可以在检测到这两个事件后进行修正