如何在文本区域中按下角色

时间:2011-12-15 03:19:57

标签: javascript jquery

这真的很奇怪。

我有一个textarea。 我听了keyup和keypress事件。

当我按下“(”时,用e.keyCode触发按键= = e.which == 40

当我按下向下箭头键时,使用e.keyCode == e.which == 40

触发键盘

为什么这么奇怪?

2 个答案:

答案 0 :(得分:3)

传统上,箭头键重叠ASCII码,但是作为一个双字节序列表示给程序员,因此您知道已经按下了一个特殊键。随着Unicode的出现,这不再是一个干净的解决方案。

浏览器已经实现了表示Javascript运行时的特殊键输入的不同方式。详情为explained here

我通常在检测箭头键时使用'keydown'事件,因为此事件附加了正确的键码,并且当用户键入左括号时将使用不同的键码(9中的键码)触发。如果您希望允许用户通过按住箭头键重复键控事件,这可能不起作用。

答案 1 :(得分:1)

keydownkeyup个事件会提供一个代码,指示按下了哪个,而keypress表示输入了哪个字符

“(”是40(keypress事件)的字符代码和向下箭头的键代码也是40(keyup)。

尝试:

String.fromCharCode(40); // "("