js onkeypress与onkeydown 事件区别详细说明


Posted in Javascript onDecember 13, 2012

onkeypress 和 onkeydown 是有区别,下面将讲解 onkeypress 与 onkeydown 事件的区别。
onkeypress 事件在用户按下并放开任何字母数字键时发生。但是系统按钮(例如:箭头键、功能键)无法得到识别。
onkeydown 事件在用户按下任何键盘键(包括系统按钮)时发生。
具体区别
1. 一个放开一个没有放开,onkeydown 先于 onkeypress 发生。
2.onkeypress 无法系统按钮。
2.onkeydown 捕获的 keyCode 不区分字母大小,而 onkeypress 区分。

onkeypress是在用户按下并放开任何字母数字键时发生。系统按钮(例如,箭头键和功能键)无法得到识别。
onkeyup 是在用户放开任何先前按下的键盘键时发生。
onkeydown 是在用户按下任何键盘键(包括系统按钮,如箭头键和功能键)时发生。

onkeypress
As of Microsoft® Internet Explorer 4.0, the onkeypress event fires and can be canceled for the following keys:

Letters: A - Z (uppercase and lowercase)
Numerals: 0 - 9
Symbols: ! @ # $ % ^ & * ( ) _ - + = < [ ] { } , . / ? \ | ' ` " ~
System: ESC, SPACEBAR, ENTER

onkeydown
As of Microsoft® Internet Explorer 4.0, the onkeydown event fires for the following keys:

Editing: DELETE, INSERT
Function: F1 - F12
Letters: A - Z (uppercase and lowercase)
Navigation: HOME, END, LEFT ARROW, RIGHT ARROW, UP ARROW, DOWN ARROW
Numerals: 0 - 9
Symbols: ! @ # $ % ^ & * ( ) _ - + = < [ ] { } , . / ? \ | ' ` " ~
System: ESC, SPACEBAR, SHIFT, TAB

As of Internet Explorer 5, the event also fires for the following keys:

Editing: BACKSPACE
Navigation: PAGE UP, PAGE DOWN
System: SHIFT+TAB

As of Internet Explorer 5, this event can be canceled for the following keys and key combinations by specifying event.returnValue=false:

Editing: BACKSPACE, DELETE
Letters: A - Z (uppercase and lowercase)
Navigation: PAGE UP, PAGE DOWN, END, HOME, LEFT ARROW, RIGHT ARROW, UP ARROW, DOWN ARROW
Numerals: 0 - 9
Symbols: ! @ # $ % ^ & * ( ) _ - + = < [ ] { } , . / ? \ | ' ` " ~
System: SPACEBAR, ESC, TAB, SHIFT+TAB

You can cancel all keys that fire the onkeydown event in HTML Applications, including most accelerator keys, such as ALT+F4.

In Internet Explorer 4.0, you cannot cancel the onkeydown event, but you can use the onkeypress event to cancel keyboard events.

两个一起按,可以这样:

if( window.event.shiftKey && event.keyCode==xx) function document_onpress() 
{ 
if(event.keyCode=='13') 
{ 
document.all.div_Line.style.pixelLeft=document.all.div_Line.style.pixelLeft+1; 
document.all.div_Q.style.pixelLeft=document.all.div_Q.style.pixelLeft+1; 
document.all.div_T.style.pixelLeft=document.all.div_T.style.pixelLeft+1; 
}
Javascript 相关文章推荐
通过js脚本复制网页上的一个表格的不错实现方法
Dec 29 Javascript
JavaScript 指导方针
Apr 05 Javascript
(跨浏览器基础事件/浏览器检测/判断浏览器)经验代码分享
Jan 24 Javascript
Javascript Memoizer浅析
Oct 16 Javascript
node-webkit打包成exe文件被360误报木马的解决方法
Mar 11 Javascript
基于JavaScript实现智能右键菜单
Mar 02 Javascript
关于两个jQuery(js)特效冲突的bug的解决办法
Sep 04 Javascript
vue.js中$watch的用法示例
Oct 04 Javascript
微信小程序 省市区选择器实例详解(附源码下载)
Jan 05 Javascript
Angular多选、全选、批量选择操作实例代码
Mar 10 Javascript
vue elementui 实现搜索栏公共组件封装的实例代码
Jan 20 Javascript
js实现扫雷源代码
Nov 27 Javascript
javascript 文件的同步加载与异步加载实现原理
Dec 13 #Javascript
javaScript复制功能调用实现方案
Dec 13 #Javascript
js遍历td tr等html元素
Dec 13 #Javascript
js关闭模态窗口刷新父页面或跳转页面
Dec 13 #Javascript
HTML复选框和单选框 checkbox和radio事件介绍
Dec 12 #Javascript
自己写的兼容ie和ff的在线文本编辑器类似ewebeditor
Dec 12 #Javascript
用javascript模仿ie的自动完成类似自动完成功的表单
Dec 12 #Javascript
You might like
可快速识别放射性物质-国外大神教你diy一个开放式辐射探测器
2020/03/12 无线电
PHP获取当前页面URL函数实例
2014/10/22 PHP
PHP错误Warning:mysql_query()解决方法
2015/10/24 PHP
php实现的pdo公共类定义与用法示例
2017/07/19 PHP
由JavaScript技术实现的web小游戏(不含网游)
2010/06/12 Javascript
js 判断脚本加载完毕的代码
2011/07/13 Javascript
jQuery中index()的用法分析
2014/09/05 Javascript
浅谈js 闭包引起的内存泄露问题
2015/06/22 Javascript
使用JQuery选择HTML遍历函数的方法
2016/09/17 Javascript
学习vue.js计算属性
2016/12/03 Javascript
非常优秀的JS图片轮播插件Swiper的用法
2017/01/03 Javascript
Bootstrap modal 多弹窗之叠加显示不出弹窗问题的解决方案
2017/02/23 Javascript
详解Vuejs2.0之异步跨域请求
2017/04/20 Javascript
浅谈原生JS中的延迟脚本和异步脚本
2017/07/12 Javascript
JavaScript全屏和退出全屏事件总结(附代码)
2017/08/17 Javascript
JSONP原理及应用实例详解
2018/09/13 Javascript
javascript实现的时间格式加8小时功能示例
2019/06/13 Javascript
jquery+ajax实现异步上传文件显示进度条
2020/08/17 jQuery
[55:02]2014 DOTA2国际邀请赛中国区预选赛 HGT VS Orenda
2014/05/21 DOTA
基于asyncio 异步协程框架实现收集B站直播弹幕
2016/09/11 Python
Python实现的异步代理爬虫及代理池
2017/03/17 Python
Python数据结构与算法之二叉树结构定义与遍历方法详解
2017/12/12 Python
Python使用Django实现博客系统完整版
2020/09/29 Python
python判断设备是否联网的方法
2018/06/29 Python
用Python将mysql数据导出成json的方法
2018/08/21 Python
Python修改文件往指定行插入内容的实例
2019/01/30 Python
使用Python的datetime库处理时间(RPA流程)
2019/11/24 Python
PyCharm安装PyQt5及其工具(Qt Designer、PyUIC、PyRcc)的步骤详解
2020/11/02 Python
Python基于argparse与ConfigParser库进行入参解析与ini parser
2021/02/02 Python
static函数与普通函数有什么区别
2015/12/25 面试题
关于工作时间玩手机的检讨书
2014/09/18 职场文书
党员三严三实心得体会
2014/10/13 职场文书
怎样写家长意见
2015/06/04 职场文书
小学语文教学反思范文
2016/03/03 职场文书
Ruby序列化和持久化存储 Marshal和Pstore介绍
2022/04/18 Ruby
Elasticsearch 索引操作和增删改查
2022/04/19 Python