javascript - 如何在 JS 事件监听器中获取正确的按键语言和大小写?

标签 javascript jquery unicode character-encoding jquery-events

我有以下 jQuery 事件监听器来获取在文本框中按下的键:

$("#theInput").keyup(function (e) {
    var charCode = e.keyCode || e.which;
    alert(charCode);
    /* rest of the code */
});

我的问题是如何准确获取输入字母的代码。例如,如果我按下 a 键,它会提示“65”——无论它是 a 还是 A。如果我将输入语言切换为外语(例如日语、中文、泰语)并按 a 键,它仍会返回“65”而不是让我知道外语字符的不同代码。

有没有办法解决这个问题,使其提供正确的语言和字母大小写?

最佳答案

你读过jQuery doco吗? keyupkeydown 事件是如何工作的?他们应该返回一个键码(而不是字符码),而不考虑当时是否按下了 shift,尽管 event object确实有一个 shiftKey 属性来告诉您 shift 是否被按下。 keyup 可让您区分与同一字符关联的不同键,因此您可以判断数字是否是通过数字小键盘输入的。

你想要的事件是keypress , 返回区分大小写的字符代码。尽管说过我不确定它如何适用于外语,但在任何情况下,整个方法都不允许用户通过从剪贴板粘贴来输入其他文本,所以这是您需要考虑的其他事情。

(顺便说一下,jQuery 规范化了 event.which 属性,因此您不需要先检查 event.keyCode。)

关于javascript - 如何在 JS 事件监听器中获取正确的按键语言和大小写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7831494/

相关文章:

javascript - 剑道UI图表: adjust label amount dynamically

javascript - 指定下一个的编号?

javascript - jQuery - 根据被点击元素的 ID 选择一个变量

javascript - Angular 为事件动态生成的 ID 定位

java - 在 Mac OS X 上的 Java Swing JComponent 中呈现梵文连字 (Unicode)

javascript - 如何在jquery mobile中按返回时检测页面显示事件?

javascript - 如何获取当前元素的计算样式

c - 如何在 C++ 中将 unicode 字符数组转换回 unicode 序列

python - Pandas.read_csv() 在列名中带有特殊字符(重音符号)

javascript - 当文档大小改变时调整 iframe 的大小