- KeyDown:用户摁下摁键时发生
- KeyPress:用户摁下摁键,并且产生一个字符时发生
- KeyUp: 用户释放某一个摁键时触发
之前在网上看到过很多这种,但是都没有实践的东西,我就实践给大家做清楚
keyPress (一般监听的是字母的大小写,对其余按键不敏感,不监听)如果使用keydown或者keyup去监听字母的大小写是不会成功的,因为获取到的ASCALL码值是没有区分大小写的
Thepassword.addEventListener('keydown', function (e) {
console.log(e)
console.log(e.keyCode)
}
在这里是结果,我们在结果中可以看到,输入了a和A,但是拿到的ASCALL吗值是一样的,这很明显就达不到我们预期的效果
我们使用keyup看下是不是和keydown一样
Thepassword.addEventListener('keyup', function (e) {
console.log(e)
console.log(e.keyCode)
})
}
很明显是相同的
接下来我们使用keypress
Thepassword.addEventListener('keypress', function (e) {
console.log(e)
console.log(e.keyCode)
})
}
现在发现了,我们使用keypress对字母大小写会更敏感,而keydown和keyup是做不到的,但是随之而来的问题就是keypress对其余的特殊按键是无效的,我是做了一次切换大小写的操作的按键,但是事件监听却没有监听到,这也说明了keypress的弊端,对其余的特殊按键是无效的,只对字符的大小写敏感
另外补充一点,这三种方法,对于数字是没有影响的