【问题标题】:Handling double events in accented keyboards处理重音键盘中的双重事件
【发布时间】:2014-01-05 13:24:45
【问题描述】:

我有一个特殊的用例,我有一系列输入字段,我根据输入的字符从当前输入字段切换到另一个输入字段。它类似于关键字搜索,其中关键字以空格分隔或用双引号括起来。因此,一旦我关闭像“印度”这样的单词的双引号,它就应该成为一个关键字,并且焦点应该移到下一个输入字段。

现在,我使用的是带有美国 - 国际 (PC) 键盘布局的 Mac,它允许我输入重音字符。例如," + e = ë.

现在发生的情况是,如果我输入“what”之类的内容,在第二个引号之后,我点击空格,焦点完美地移动到新的输入字段,但是,新的输入字段已经预先填充了一个“字符在里面!

一些调试表明这种键盘布局会导致两个keyup 事件被触发,一个是在您键入 " 时,另一个是在您键入 space 时。@987654322对于这两个事件(jQuery),@ 是 229,在第一种情况下,event.shiftKey 为真,在下一种情况下为假。同样适用于键入 " + e 时,第二个event.keyCode 又是 229,与 ë 不匹配。

这有助于我区分这两个事件,但我正在寻找更具体的解决方法。到目前为止,我还没有解决这个问题。

如果有人有任何想法,那就太好了。

【问题讨论】:

    标签: javascript jquery keyboard jquery-events


    【解决方案1】:

    我自己解决了这个问题。这个想法是基于 event.shiftKey 来区分这两个事件。当有人键入双引号并打算键入它时,event.shiftKey 为真。第二个事件,在双引号之后,如果有人按下导致双引号的字符并且新字符被组合成重音字符,则新触发的事件没有 shiftKey = true,但 event.keyCode = 229 (这是相同的),所以这可以用来区分。如果一个新的输入字段仍然收到一个幻像",则可以在检测到这两个事件后进行修改。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-26
      • 1970-01-01
      • 2011-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-01
      • 1970-01-01
      相关资源
      最近更新 更多