简单的问题 - 是否有人知道可靠的跨浏览器功能来从keydown事件中输入 字符 ?我可以从quirksmode网格中编写一个,但是不想重新发明轮子,因为它非常简单但非标准。
让我澄清一下:
仅使用event.keyCode
或event.which
无法做到这一点。整体逻辑如下:
{186 : ';', 187 : '=', 188 : ',', ....}
String.fromCharCode(key)
这不是一个简单的解决方案,这就是为什么我正在寻找一个预先制作的解决方案:)
答案 0 :(得分:4)
你愿意使用jQuery吗?
$("input").bind("keydown",function(e){ var value = this.value + String.fromCharCode(e.keyCode); }
我相信切换到按键事件可以解决您评论中提到的问题。以下代码是否符合您的要求?
$("input").bind("keypress",function(e){ var value = this.value + String.fromCharCode(e.keyCode); }
答案 1 :(得分:3)
keypress
,keydown
和keyup
事件转换为字符和键。
示例:
element.addEventListener("keydown", function(event) {
var character = keysight(event).char
})
它不会忽略ctrl上的任何内容,因此如果需要,您必须手动执行此操作。但它完成了你给出的所有其他逻辑。