使用event.key而不是event.keyCode

时间:2018-11-21 00:21:36

标签: javascript

所以可以说,我有用于检查按键是否为数字的代码

if (e.keyCode >= 48 && e.keyCode <= 57 || e.keyCode >= 96 && e.keyCode <= 105 ) {
// number entered, do something
} else if (e.keyCode === 8) {
// backspace pressed
} 

我将如何更改这些检查以使用event.key,因为event.keyCode已贬值。是否像我想的那么容易?

特别是如何将e.key与退格键一起使用

1 个答案:

答案 0 :(得分:0)

您只需将其更改为使用所按下键的名称即可。对于字母,它是按下的字母,a =“ a”,A =“ A”,z =“ z”,等等。Number是数字的字符串版本1 =“ 1”,2 =“ 2”,等等。控制键,它是键的名称,ctrl =“ Control”,backspace =“ Backspace”,等等。

可以看到列表here

因此,如果您需要测试数字范围,则可以获取key值并将其强制为数字,然后进行适用的比较,就退格而言,只需与字符串"Backspace"比较即可。 / p>

//coerce it to a number
numKey = +e.key;
if (!isNaN(numKey) && numKey >= 0 && numKey <= 9 ) {
// number entered, do something
} else if (e.key == "Backspace") {
// backspace pressed
}