您现在的位置: 万盛学电脑网 >> 程序编程 >> 脚本专题 >> javascript >> 正文

Javascript中KeyDown、KeyUp和KeyPress三个事件区别

作者:佚名    责任编辑:admin    更新时间:    2015-10-15 10:07:33

  在js中三个事件都是按键事件了,下面我们来看看KeyDown,KeyUp,KeyPress这三个事件的区别在哪里吧,希望例子能帮助到各位。

  1.引发事件的按键

  非字符键不会引发 KeyPress 事件,但非字符键却可以引发 KeyDown 和 KeyUp 事件。KeyPress 事件 KeyChar 属性可以获取输入的字符。

  2.事件引发的时间

  KeyDown 和 KeyPress 事件在按下键时发生,KeyUp 事件在释放键时发生。

  3.事件发生的顺序

  KeyDown -> KeyPress -> KeyUp。如果按一个键很久才松开,发生的事件为:KeyDown -> KeyPress -> KeyDown -> KeyPress -> KeyDown -> KeyPress -> ... -> KeyUp。

  注意:

  KeyDown触发后,不一定触发KeyUp,当KeyDown 按下后,拖动鼠标,那么将不会触发KeyUp事件。

  KeyPress主要用来捕获数字(注意:包括Shift+数字的符号)、字母(注意:包括大小写)、小键盘等除了F1-12、SHIFT、Alt、Ctrl、Insert、Home、PgUp、Delete、End、PgDn、ScrollLock、Pause、NumLock、{菜单键}、{开始键}和方向键外的ANSI字符

  KeyDown 和KeyUp 通常可以捕获键盘除了PrScrn所有按键(这里不讨论特殊键盘的特殊键)

  KeyPress 只能捕获单个字符

  KeyDown 和KeyUp 可以捕获组合键。

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

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

  KeyPress 不区分小键盘和主键盘的数字字符。

  KeyDown 和KeyUp 区分小键盘和主键盘的数字字符。

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