我在这里检查了其他问题,但他们没有回答我的问题.我想简单地捕获某些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的参考资料 – 所有只读数都无法设置.
正如你在帖子中提到的那样. – 如果你不想处理,那么你必须停止浏览器默认按键并自己设置所需的元素值.