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

标签 javascript dom-events keyboard-events

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

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

并且使用 String.fromCharCode() 表示 186(这是 iPhone 上冒号按钮的 event.which 值)不会给我一个半冒号而是一个奇怪的圆圈字符。但打印 String.fromCharCode(59) 确实给我一个冒号。

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

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;
                }

最佳答案

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

关于javascript - 无法识别移动键盘中的冒号键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11677993/

相关文章:

javascript - 在 javascript var 中检索 mysql 数据

textarea - Elm - textarea 选择范围消失

javascript - 使用 JQuery 粘贴事件后将焦点更改为下一个输入

jquery - 禁用 JQuery ui datepicker 中的 Enter 键

javascript - 防止在 React JS 中多次调用一个方法

javascript - html 显示 :none causes linebreaks

javascript - 更改 componentDidMount 中的状态后,React 组件不会更新

javascript - 是否可以在 JavaScript 中监听对象属性的更改?

javascript - js获取横向滚动事件

javascript - 单击图像的元素时播放视频