我有一个特殊的用例,我有一系列输入字段,我根据输入的字符从当前输入字段切换到另一个字段。它类似于关键字搜索,其中关键字是空格分隔的或用双引号括起来。因此,只要我关闭像“印度”这样的单词的双引号,它就应该成为一个关键字,焦点应移到下一个输入字段。
现在,我正在使用带有美国的Mac - 国际(PC)键盘布局,允许我输入重音字符。例如,“+ e =ë。
现在发生的事情是,如果我输入类似“what”的内容,在第二个引号后,我点击空格,焦点完全移动到新的输入字段,但是,新的输入字段已经有一个“字符预先填充”在它!
一些调试显示这个键盘布局导致两个键盘事件被触发,一个键入“和下一个键入空格。这两个事件的事件.keyCode(jQuery)是229,在第一种情况下,event.shiftKey为true,下一个为false。同样适用于当你输入“+ e时,第二个event.keyCode再次为229,与ë不匹配。
这有助于我区分这两个事件,但我正在寻找一个更具体的解决方案。截至目前,我无法解决这个问题。
如果有人有任何想法,那就太棒了。
答案 0 :(得分:0)
我自己解决了这个问题。我们的想法是基于event.shiftKey来区分这两个事件。当有人键入双引号并打算键入它时,event.shiftKey为true。第二个事件,在双引号之后,如果有人按下导致双引号的字符并且新字符被组合成重音字符,则新触发的事件不具有shiftKey = true,而是event.keyCode = 229(这是相同的),所以这可以用来区分。如果新输入字段仍然收到幻像“,则可以在检测到这两个事件后进行修改。