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英文日期(有时间)选择器
May 02 Javascript
判断多个元素(RADIO,CHECKBOX等)是否被选择的原理说明
Feb 18 Javascript
js获取当前路径的简单示例代码
Jan 08 Javascript
javascript ajax的5种状态介绍
Aug 18 Javascript
JavaScript拖拽、碰撞、重力及弹性运动实例分析
Jan 08 Javascript
概述VUE2.0不可忽视的很多变化
Sep 25 Javascript
从零开始实现Vue简单的Toast插件
Dec 03 Javascript
Angular CLI 使用教程指南参考小结
Apr 10 Javascript
微信小程序自定义菜单切换栏tabbar组件代码实例
Dec 30 Javascript
基于vue.js实现购物车
Jan 15 Javascript
详解elementUI中input框无法输入的问题
Apr 27 Javascript
梳理一下vue中的生命周期
Dec 30 Vue.js
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版)
2006/10/09 PHP
php 友好URL的实现(吐血推荐)
2008/10/04 PHP
网页的分页下标生成代码(PHP后端方法)
2016/02/03 PHP
PHP设计模式之观察者模式实例
2016/02/22 PHP
javascript 打印内容方法小结
2009/11/04 Javascript
JS中attr和prop属性的区别以及优先选择示例介绍
2014/06/30 Javascript
Jquery 实现grid绑定模板
2015/01/28 Javascript
AngularJS基础 ng-keyup 指令简单示例
2016/08/02 Javascript
bootstrap导航栏、下拉菜单、表单的简单应用实例解析
2017/01/06 Javascript
BootStrapValidator初使用教程详解
2017/02/10 Javascript
正则表达式基本语法及表单验证操作详解【基于JS】
2017/04/07 Javascript
Bootstrap fileinput 上传新文件移除时触发服务器同步删除的配置
2018/10/08 Javascript
js 使用ajax设置和获取自定义header信息的方法小结
2020/03/12 Javascript
js实现滑动滑块验证登录
2020/07/24 Javascript
[03:26]《DAC最前线》之EG经理自述DOTA2经历
2015/02/02 DOTA
Python中for循环详解
2014/01/17 Python
Python 机器学习库 NumPy入门教程
2018/04/19 Python
Python 统计字数的思路详解
2018/05/08 Python
pycharm 将django中多个app放到同个文件夹apps的处理方法
2018/05/30 Python
flask框架实现连接sqlite3数据库的方法分析
2018/07/16 Python
python中使用 xlwt 操作excel的常见方法与问题
2019/01/13 Python
python几种常用功能实现代码实例
2019/12/25 Python
Python while循环使用else语句代码实例
2020/02/07 Python
通过Python实现Payload分离免杀过程详解
2020/07/13 Python
美国地毯购买网站:Rugs USA
2019/02/23 全球购物
JAVA和C++的区别
2013/10/06 面试题
.NET面试问题集
2015/12/08 面试题
几个Linux面试题笔试题
2012/12/01 面试题
部队学习十八大感言
2014/01/11 职场文书
党员自我批评与反省材料
2014/02/10 职场文书
公司授权委托书范文
2014/09/21 职场文书
学校开除通知书
2015/04/25 职场文书
淮海战役观后感
2015/06/11 职场文书
企业管理不到位检讨书
2019/06/27 职场文书
Python极值整数的边界探讨分析
2021/09/15 Python
Redis之RedisTemplate配置方式(序列和反序列化)
2022/03/13 Redis