jQuery Mask输入现在可在Android(Samsung Galaxy 4)上使用。

在调查之后,keydownEvent处理程序方法始终接收keyCode 229,而不是正确的键盘键。

这里报告了类似的错误Issue 118639 in chromium: keydown and keyup events do not have proper keyCode

这个问题有解决方法吗?上面的a链接提出了一些解决方法:
例如通过使用DOM 3级合成事件[compositionstart,compositionupdate和compositionend]

但是我不确定如何修改JQuery Mask输入代码以实现这种解决方法,我尝试了以下

.bind("keydown.mask", keydownEvent)
.bind("keypress.mask", keypressEvent)
.bind("compositionstart.mask", keydownEvent_com)
.bind("compositionend.mask", keypressEvent_com)


但是keydownEvent_com从未调用过。

因此,将这种修复/变通方法应用于JQuery Mask输入的正确方法是什么,或者可能是解决此类问题的另一种方法。

最佳答案

我尚未找到解决此问题的明确解决方法,但如果操作系统是android(旧版本和4.2.2),则不包括掩码,另外还包括未测试此功能的Windows Mobile和操作系统,因为我无法使用它也将在那里工作。

   if (!navigator.userAgent.match(/(Android (1.0|1.1|1.5|1.6|2.0|2.1|4.2.2))|(Windows Phone (OS  7|8.0))|(XBLWP)|(ZuneWP)|(w(eb)?OSBrowser)|(webOS)|(Kindle\/(1.0|2.0|2.5|3.0))/)) {
            $(value).mask("999-99-999999?99", {"placeholder": "x"});
          }

关于javascript - Android(Samsung Galaxy)上的JQuery Mask输入插件,返回的keyCode始终为229,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19886593/

10-11 06:15