键盘事件、键盘事件对象
一、键盘事件
1、keyup 按键弹起触发
2、keydown 按键按下触发,一直按着一直触发
3、keypress 按键按下触发,一直按着一直触发 (不识别功能键,例如crtl、shift、左右箭头、Backspace)
4、如果三个事件都有,则触发顺序为 keydown->keypress->keyup
二、键盘事件对象
1、e.keyCode 对应建的ASCII码值 A-Z 65-90 a-z 97-122
2、 我们的keyup 和keydown事件不区分字母大小写 a 和 A 得到的都是65
3、 我们的keypress 事件 区分字母大小写 a 97 和 A 得到的是65
例:京东快递单号输入
此处我们用keyup事件,按键弹起再触发事件;如果我们用keydown或者keypress,表示按键一按下就触发事件,但是此时按下的值并未输入到文本框中,此案例就会出bug:输入一个数,不会有显示,输入第二个数才显示,而且第一个数已经不见了
jd_input.addEventListener('keyup', function() {
// console.log('输入内容啦');
if (this.value == '') {
con.style.display = 'none';
} else {
con.style.display = 'block';
con.innerText = this.value;
}
})