无法识别移动键盘中的冒号键

问题描述 投票:2回答:1

我有一个按键事件处理程序,很难识别用户是否按下了手机键盘(例如iPhone)中的冒号

问题是浏览器为冒号和分号返回相同的event.keyCode值(或event.which,具体取决于浏览器)。并且由于在触发keydown事件处理程序时,该值尚未没有添加到HTMLInputElement's value属性中,我无法使用简单的获取最后一个字符并检查其是否为冒号逻辑。

并且使用186的String.fromCharCode()(这是iPhone上冒号按钮的event.which值)不会给我一个分号,而是一个奇怪的圆圈字符。但是印刷String.fromCharCode(59)does给我冒号。

这是我的代码的简单版本:

isColon : function(event)
                {
                    // first check for desktop browsers 
                    if (event.shiftKey && event.which == constants.KEYS.COLON) //the constant is 186 or 59 depending on browser, this works on all desktop browsers
                        return true;
                    //this doesnt work as event.which=186 which is NOT giving a ":"  when I say String.fromCharCode(event.which)
                    if (String.fromCharCode(event.which) == ":")
                        return true;
                    return false;
                }
javascript dom-events keyboard-events
1个回答
1
投票

改为使用按键;您仍然可以event.preventDefault()防止字符出现在输入中。

© www.soinside.com 2019 - 2024. All rights reserved.