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框架veryide.librar源代码
Mar 05 Javascript
改善用户体验的五款jQuery插件分享
May 22 Javascript
一些实用的jQuery代码片段收集
Jul 12 Javascript
非常好用的JsonToString 方法 简单实例
Jul 18 Javascript
IE浏览器中图片onload事件无效的解决方法
Apr 29 Javascript
JavaScript中字符串拼接的基本方法
Jul 07 Javascript
JavaScript实现上下浮动的窗口效果代码
Oct 12 Javascript
leaflet的开发入门教程
Nov 17 Javascript
vue-cli3.0 特性解读
Apr 22 Javascript
AngularJS上传文件的示例代码
Nov 10 Javascript
Vue.js 实现地址管理页面思路详解(地址添加、编辑、删除和设置默认地址)
Dec 11 Javascript
jQuery实现容器间的元素拖拽功能
Dec 01 jQuery
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
深入PHP数据缓存的使用说明
2013/05/10 PHP
php中fgetcsv()函数用法实例
2014/11/28 PHP
php插入排序法实现数组排序实例
2015/02/16 PHP
php获取当前页面完整URL地址
2015/12/30 PHP
windows系统php环境安装swoole具体步骤
2021/03/04 PHP
Javascript代码混淆综合解决方案-Javascript在线混淆器
2006/12/18 Javascript
验证用户是否修改过页面的数据的实现方法
2008/09/26 Javascript
利用javascript移动div层-javascript 拖动层
2009/03/22 Javascript
ExtJs grid行 右键菜单的两种方法
2010/06/19 Javascript
JavaScript去掉数组中的重复元素
2011/01/13 Javascript
js对象与打印对象分析比较
2013/04/23 Javascript
jQuery EasyUI中DataGird动态生成列的方法
2016/04/05 Javascript
JS实现选定指定HTML元素对象中指定文本内容功能示例
2017/02/13 Javascript
详解如何在vue-cli中使用vuex
2018/08/07 Javascript
通过cordova将vue项目打包为webapp的方法
2019/02/02 Javascript
全局安装 Vue cli3 和 继续使用 Vue-cli2.x操作
2020/09/08 Javascript
vue项目打包为APP,静态资源正常显示,但API请求不到数据的操作
2020/09/12 Javascript
[01:04:49]KG vs LGD 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
python中对list去重的多种方法
2014/09/18 Python
关于Pycharm无法debug问题的总结
2019/01/19 Python
详解python的四种内置数据结构
2019/03/19 Python
pandas 如何分割字符的实现方法
2019/07/29 Python
Python类中的装饰器在当前类中的声明与调用详解
2020/04/15 Python
通过python-pptx模块操作ppt文件的方法
2020/12/26 Python
详解python使用金山词霸的翻译功能(调试工具断点的使用)
2021/01/07 Python
网络编程中设计并发服务器,使用多进程与多线程,请问有什么区别?
2016/03/27 面试题
物流管理应届生求职信
2013/11/07 职场文书
幼儿园教师备课制度
2014/01/12 职场文书
不假外出检讨书
2014/01/27 职场文书
爱国主义演讲稿
2014/05/07 职场文书
金融系毕业生自荐书
2014/07/08 职场文书
软件测试专业推荐信
2014/09/18 职场文书
公司副总经理岗位职责
2014/10/01 职场文书
质量保证书
2015/01/17 职场文书
2019个人年度目标制定攻略!
2019/07/12 职场文书
关于CentOS 8 搭建MongoDB4.4分片集群的问题
2021/10/24 MongoDB