我有以下 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吗? keyup
和 keydown
事件是如何工作的?他们应该返回一个键码(而不是字符码),而不考虑当时是否按下了 shift,尽管 event
object确实有一个 shiftKey
属性来告诉您 shift 是否被按下。 keyup
可让您区分与同一字符关联的不同键,因此您可以判断数字是否是通过数字小键盘输入的。
你想要的事件是keypress , 返回区分大小写的字符代码。尽管说过我不确定它如何适用于外语,但在任何情况下,整个方法都不允许用户通过从剪贴板粘贴来输入其他文本,所以这是您需要考虑的其他事情。
(顺便说一下,jQuery 规范化了 event.which
属性,因此您不需要先检查 event.keyCode
。)
关于javascript - 如何在 JS 事件监听器中获取正确的按键语言和大小写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7831494/