Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在重音键盘中处理双重事件_Javascript_Jquery_Keyboard_Jquery Events - Fatal编程技术网

Javascript 在重音键盘中处理双重事件

Javascript 在重音键盘中处理双重事件,javascript,jquery,keyboard,jquery-events,Javascript,Jquery,Keyboard,Jquery Events,我有一个特殊的用例,其中我有一系列的输入字段,我根据键入的字符从当前输入字段切换到另一个输入字段。它有点像关键字搜索,关键字用空格分隔或用双引号括起来。因此,只要我在“India”这样的词周围加上双引号,它就应该成为一个关键词,焦点应该转移到下一个输入字段 现在,我使用的是带有美国国际(PC)键盘布局的Mac电脑,它允许我输入重音字符。例如,“+e= 现在发生的事情是,如果我键入类似“What”的内容,在第二个引号之后,我点击空格,焦点会完美地移动到新的输入字段,但是,新的输入字段中已经预先填充

我有一个特殊的用例,其中我有一系列的输入字段,我根据键入的字符从当前输入字段切换到另一个输入字段。它有点像关键字搜索,关键字用空格分隔或用双引号括起来。因此,只要我在“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(相同),因此可以使用它来区分。如果一个新的输入字段仍然收到“幻影”,则可以在检测到这两个事件后进行修正