javascript – 如何捕获event.keyCode并将其更改为另一个keyCode?

我在这里检查了其他问题,但他们没有回答我的问题.我想简单地捕获某些keyCode并将其替换为另一个.我正在处理角色,而不是白色空间,我不需要松散焦点等.

以下是我的代码.但是你可以用你的那些替换那些keyCodes(例如,当按下大写“A”时,它应该替换为零0等).想法是替换keyCode.

phrase.keypress(function(event)
{
    if (event.shiftKey)
    {
        switch (event.keyCode)
        {
            // Cyrillic capitalized "Н" was pressed
            case 1053: event.keyCode = 1187; event.charCode = 1187; event.which = 1187; break;
            // Cyrillic capitalized "О" was pressed
            case 1054: event.keyCode = 1257; event.charCode = 1257; event.which = 1257; break;
            // Cyrillic capitalized "У" was pressed
            case 1059: event.keyCode = 1199; event.charCode = 1199; event.which = 1199; break;
        }
    }
});

我也试过keydown和keyup.它们不会改变keyCode.我怎样才能做到这一点?

附:如果可能的话,我正在寻找一个解决方案,它不会“event.preventDefault()并手动将所需的键插入输入字段,然后将光标移动到结尾”.我想要更清洁和“正确”的解决方案.谢谢.

解决方法:

键盘事件属性都是只读的.您无法捕获一个keyCode并将其更改为另一个.

参见MDN-Keyboard Events的参考资料 – 所有只读数都无法设置.

正如你在帖子中提到的那样. – 如果你不想处理,那么你必须停止浏览器默认按键并自己设置所需的元素值.

上一篇:JavaScript-e.keyCode不起作用


下一篇:flex 组合键实现