javascript KeyDown、KeyPress和KeyUp事件的区别与联系


Posted in Javascript onDecember 03, 2009

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

1、KeyPress主要用来接收字母、数字等ANSI字符
KeyDown 和 KeyUP 事件过程通常可以捕获键盘除了PrScrn所有按键(这里不讨论特殊键盘的特殊键

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

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

释,即作为两种不同的字符。
KeyDown 和KeyUp 不能判断键值字母的大小。KeyDown 和 KeyUp 用两种参数解释每个字符的大写形式和小写形式:keycode — 显

示物理的键(将 A 和 a 作为同一个键返回)和 shift —指示 shift + key 键的状态而且返回 A 或 a 其中之一。

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

6、KeyDown、KeyUp事件是当按下 ( KeyDown ) 或松开 ( KeyUp ) 一个键时发生的。
由于一般按下键盘的键往往会立即放开(这和鼠标不同),所以这两个事件使用哪个差别不大。

而且,up和其他两者还有一个区别:要判断key修改后的状态必须用up。

Javascript 相关文章推荐
javascript 模式设计之工厂模式学习心得
Apr 27 Javascript
js和as的稳定传值问题解决
Jul 14 Javascript
火狐下input焦点无法重复获取问题的解决方法
Jun 16 Javascript
2014 HTML5/CSS3热门动画特效TOP10
Dec 07 Javascript
jQuery插件pagewalkthrough实现引导页效果
Jul 05 Javascript
Javascript中arguments对象的详解与使用方法
Oct 04 Javascript
JS实现的走迷宫小游戏完整实例
Jul 19 Javascript
vue实现消息的无缝滚动效果的示例代码
Dec 05 Javascript
js Element Traversal规范中的元素遍历方法
Apr 19 Javascript
微信小程序实现滑动切换自定义页码的方法分析
Dec 29 Javascript
JavaScript实现打砖块游戏
Feb 25 Javascript
Vuex实现购物车小功能
Aug 17 Javascript
javascript json 新手入门文档
Dec 03 #Javascript
js 屏蔽鼠标右键脚本附破解方法
Dec 03 #Javascript
33种Javascript 表格排序控件收集
Dec 03 #Javascript
javascript 面向对象全新理练之原型继承
Dec 03 #Javascript
javascript 面向对象全新理练之继承与多态
Dec 03 #Javascript
javascript 面向对象全新理练之数据的封装
Dec 03 #Javascript
jquery的ajax从纯真网(cz88.net)获取IP地址对应地区名
Dec 02 #Javascript
You might like
用php解析html的实现代码
2011/08/08 PHP
PHP 登录记住密码实现思路
2013/05/07 PHP
php天翼开放平台短信发送接口实现方法
2014/12/22 PHP
使用PHP连接多种数据库的实现代码(mysql,access,sqlserver,Oracle)
2016/12/21 PHP
PHP获取对象属性的三种方法实例分析
2019/01/03 PHP
用js实现的检测浏览器和系统的函数
2009/04/09 Javascript
dreamweaver 安装Jquery智能提示
2011/04/02 Javascript
深入理解JavaScript系列(11) 执行上下文(Execution Contexts)
2012/01/15 Javascript
js和html5实现手机端刮刮卡抽奖效果完美兼容android/IOS
2013/11/18 Javascript
通过url查找a元素并点击
2014/04/09 Javascript
JQuery实现防止退格键返回的方法
2015/02/12 Javascript
浅谈轻量级js模板引擎simplite
2015/02/13 Javascript
详解JS面向对象编程
2016/01/24 Javascript
原生javascript实现的一个简单动画效果
2016/03/30 Javascript
利用jQuery实现打字机字幕效果实例代码
2016/09/02 Javascript
Angularjs中的ui-bootstrap的使用教程
2017/02/19 Javascript
解决jQuery使用append添加的元素事件无效的问题
2018/08/30 jQuery
浅谈Layui的eleTree树式选择器使用方法
2019/09/25 Javascript
jQuery实现移动端图片上传预览组件的方法分析
2020/05/01 jQuery
[49:56]VG vs Optic 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
在Python的gevent框架下执行异步的Solr查询的教程
2015/04/16 Python
Python使用Windows API创建窗口示例【基于win32gui模块】
2018/05/09 Python
Django实现分页功能
2018/07/02 Python
详解Python3.6的py文件打包生成exe
2018/07/13 Python
Python进行统计建模
2020/08/10 Python
Django2.1.7 查询数据返回json格式的实现
2020/12/29 Python
利用html5 canvas破解简单验证码及getImageData接口应用
2013/01/25 HTML / CSS
德国汉莎航空中国官网: Lufthansa中国
2017/03/30 全球购物
名词解释WEB SERVICE,SOAP,UDDI,WSDL,JAXP,JAXM;JSWDL开发包的介绍。
2012/10/27 面试题
请说出这段代码执行后a和b的值分别是多少
2015/03/28 面试题
捐赠仪式主持词
2014/03/19 职场文书
承诺书怎么写
2014/03/26 职场文书
2014年小学美术工作总结
2014/12/20 职场文书
给朋友的道歉短信
2015/05/12 职场文书
Spring Cloud 中@FeignClient注解中的contextId属性详解
2021/09/25 Java/Android
纯CSS打字动画的实现示例
2022/08/05 HTML / CSS