键盘事件
#6.24
DEF
1.键盘事件
描述:键盘事件是指当用户在操作键盘的时候会自动被触发的事件
注意:
(1)默认采用事件冒泡机制
(2)键盘事件一般绑定在需要用户输入的元素上(例如input)
键盘事件直接绑定在body之上也是允许的
类型:
(1) keydown:用户按下任意键都可以触发这个事件。如果按住不放,事件会被连续触发
(2) keyup: 用户释放按键时触发
(3) keypress:用户按下(可显示的)任意键都可以触发这个事件(功能键除外)。
如果按住不放,事件会被连续触发 (keypress能识别大小写)
2.event.keycode
描述:在键盘事件中可以通过event.keycode来获取按下按键的编码值。
keydown和keypress事件的区别
(1)keyPress主要用来捕获:数字(包括Shift+数字的符号)、字母(包括大小写)、小键盘等能够显示在屏幕中的字符。但是不能对系统功能键(例如:后退、删除等,其中对中文输入法不能有效响应)进行正常的响应。而KeyDown和KeyUp通常可以捕获键盘除了PrScrn所有按键(这里不讨论特殊键盘的特殊键)
(2)捕获字符长度区别
KeyPress只能捕获单个字符。KeyDown和KeyUp可以捕获组合键。
(3)捕获字符大小写识别区别
KeyPress可以捕获单个字符的大小写。KeyDown和KeyUp对于单个字符捕获的KeyCode都是一个值,也就是不能判断单个字符的大小写。
(4)捕获字符数字区别
KeyPress不区分小键盘和主键盘的数字字符。
KeyDown和KeyUp区分小键盘和主键盘的数字字符。
(5)特殊情况
PrinttScreen按键KeyPress、KeyDown和KeyUp都不能捕获。
上下左右等功能键的keydown、keyup都能获取keyCode,并且值相等。
常见键盘按键编码
应用场景:
小说上下键翻页,输入密码提示大写锁定已打开。
#大写锁定案例应该在插入焦点事件,聚焦时就提示大写锁定更好一点