js中的keyPress、keyDown、keyUp

KeyDown:在控件有焦点的情况下按下键时发生。

KeyPress:在控件有焦点的情况下按下键时发生。

KeyUp:在控件有焦点的情况下释放键时发生。


1. KeyPress 主要用来接收字母、数字等 ANSI 字符。
   keyDown 和 KeyUp 事件过程通常可以捕获键盘除了 PrScrn(在键盘右上角)所有按键。

2. KeyPress 只能捕获单个字符。KeyDown 和 KeyUp 可以捕获组合键。

3. KeyPress 不显示键盘的物理状态(SHIFT键),而只是传递一个字符。
   KeyPress 将每个字符的大、小写形式作为不同的键代码解释,即作为两种不同的字符。

4. KeyDown 和 KeyUp 不能判断键值字母的大小。KeyDown 和 KeyUp 用两种参数解释每个字符的大写形式和小写形式:
   keycode —— 显示物理的键(将 A 和 a 作为同一个键返回)和 shift —— 指示 shift + key 键的状态而且返回 A 或 a 其中之一。

5. KeyPress 不区分小键盘和主键盘的数字字符。KeyDown 和 KeyUp 区分小键盘和主键盘的数字字符。

6. KeyDown、KeyUp 事件是当按下 ( KeyDown ) 或松开 ( KeyUp ) 一个键时发生的。

另外:KeyUp 和其他两者还有一个区别:要判断 Key 修改后的状态必须用 KeyUp。


1. KeyPress 主要用来捕获数字(注意:包括 Shift + 数字的符号)、字母(注意:包括大小写)、小键盘等
   除了F1-12、SHIFT、Alt、Ctrl、Insert、Home、PgUp、Delete、End、PgDn、ScrollLock、Pause、NumLock、{菜单键}、{开始键}和方向键外的 ANSI 字符。
   KeyDown 和KeyUp 通常可以捕获键盘除了 PrScrn 所有按键(这里不讨论特殊键盘的特殊键)。

2. KeyPress 只能捕获单个字符。KeyDown 和 KeyUp 可以捕获组合键。

3. KeyPress 可以捕获单个字符的大小写。

4. KeyDown 和 KeyUp 对于单个字符捕获的 KeyValue 都是一个值,也就是不能判断单个字符的大小写。

5. KeyPress 不区分小键盘和主键盘的数字字符。KeyDown 和 KeyUp 区分小键盘和主键盘的数字字符。

6. 其中 PrScrn 按键 KeyPress、KeyDown 和 KeyUp 都不能捕获。

posted @ 2020-05-26 22:43  不念过往只为将来  阅读(1081)  评论(0)    收藏  举报