`
hanjiangit
  • 浏览: 179377 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

onkeypress,onkeydown,onkeyup区别 和 javascript event.keycode值大全

阅读更多

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&reg; 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;
文章源自:烈火网,原文:
http://www.liehuo.net/a/200909/188880.html

 

键盘键和键盘键控制值一览表(键盘按键对应代码表)

适合EXT keycode的查询 
A <--------> 65 
B <--------> 66 
C <--------> 67 
D <--------> 68 
E <--------> 69 
F <--------> 70 
G <--------> 71 
H <--------> 72 
I <--------> 73 
J <--------> 74 
K <--------> 75 
L <--------> 76 
M <--------> 77 
N <--------> 78 
O <--------> 79 
P <--------> 80 
Q <--------> 81 
R <--------> 82 
S <--------> 83 
T <--------> 84 
U <--------> 85 
V <--------> 86 
W <--------> 87 
X <--------> 88 
Y <--------> 89 
Z <--------> 90 
0 <--------> 48 
1 <--------> 49 

2 <--------> 50 
3 <--------> 51 
4 <--------> 52 
5 <--------> 53 
6 <--------> 54 
7 <--------> 55 
8 <--------> 56 
9 <--------> 57 
数字键盘 1 <--------> 96 
数字键盘 2 <--------> 97 
数字键盘 3 <--------> 98 
数字键盘 4 <--------> 99 
数字键盘 5 <--------> 100 
数字键盘 6 <--------> 101 
数字键盘 7 <--------> 102 
数字键盘 8 <--------> 103 
数字键盘 9 <--------> 104 
数字键盘 0 <--------> 105 
乘号 <--------> 106 
加号 <--------> 107 
Enter <--------> 108 
减号 <--------> 109 
小数点 <--------> 110 
除号 <--------> 111 
F1 <--------> 112 
F2 <--------> 113 
F3 <--------> 114 
F4 <--------> 115 
F5 <--------> 116 
F6 <--------> 117 
F7 <--------> 118 
F8 <--------> 119 
F9 <--------> 120 
F10 <--------> 121 
F11 <--------> 122 
F12 <--------> 123 
F13 <--------> 124 
F14 <--------> 125 
F15 <--------> 126 
Backspace <--------> 8 
Tab <--------> 9 
Clear <--------> 12 
Enter <--------> 13 
Shift <--------> 16 
Control <--------> 17 
Alt <--------> 18 
Caps Lock <--------> 20 
Esc <--------> 27 
空格键 <--------> 32 
Page Up <--------> 33 
Page Down <--------> 34 
End <--------> 35 
Home <--------> 36 
左箭头 <--------> 37 
向上箭头 <--------> 38 
右箭头 <--------> 39 
向下箭头 <--------> 40 
Insert <--------> 45 
Delete <--------> 46 
Help <--------> 47 
Num Lock <--------> 144 
; : <--------> 186 
= + <--------> 187 
- _ <--------> 189 
/ ? <--------> 191 
` ~ <--------> 192 
[ { <--------> 219 
| <--------> 220 
] } <--------> 221 
'' ' <--------> 222

 

 

 

onkeypress:能够产生该事件的字符为:
Letters: A - Z (uppercase and lowercase)
Numerals: 0 - 9
Symbols: ! @ # $ % ^ & * ( ) _ - + = < [ ] { } , . / ? \ | ' ` " ~
System: ESC, SPACEBAR, ENTER
如果是输入Ctrl+C、Delete之类的,就不会产生该事件。
特别注意:对于中文没有效果
获取所按的键ASCII码(即大小写字母有分),可使用event.keyCode,要转换也可以对event.keyCode进行操作。
事件产生时value还没有包含所输入的字符。
如果要取消输入,可以使用event.keyCode = 0,也可以使用event.returnValue = false。
想获取控制键的情况,则使用event.altKey、altLeft、ctrlKey、ctrlLeft、shiftKey、shiftLeft。
当按住键盘不放时,会持续产生该事件。

这样看来,它只能处理中规中矩的事情。如输入只能大写,输入只能数字(但粘贴功能还会破坏这些规则)。

onkeydown:任何按键都能产生该事件,
即使按一下Ctrl键,也是激发该事件
用输入法输入中文时,每输入一个编码都产生一个事件,多得让人受不了,并且获得到的keyCode却是229。
其获取的是键盘的扫描码(即大小写字母不分),可使用event.keyCode,但不能使用event.keyCode来修改。(但这又是个例外:if (event.keyCode === 13) event.keyCode = 9;)
事件产生时value还没有包含所输入的字符。
如果要取消输入,不能使用event.keyCode = 0这种方式,但可以使用event.returnValue = false。
当按住键盘不放时,会持续产生该事件。

onkeyup:任何按键都能产生该事件,
即使按一下Ctrl键,也是激发该事件
用输入法输入中文时,每输入一个编码都产生一个事件,虽然也没办法获取汉字,但keyCode还好是编码。
其获取的是键盘的扫描码(即大小写字母不分),可使用event.keyCode,但不能使用event.keyCode来修改。
事件产生时value已经包含所输入的字符了。
event.keyCode = 0 与 event.returnValue = false都不能取消该事件。
当按住键盘不放时,不会持续产生该事件。只有最后放开,才产生。

我的目的是限制用户输入的长度(特别是中文),看了这三个事件,都没有一个方便的家伙。

有一种观点:长度验证不必在输入时进行,只要在光标离开或提交时验证,其实这不是最理想的,试想一下,一个输入框,用户心血来潮地输入了一大堆东西,然后提交,这时系统才告诉他不能输入这么多,这是个糟糕的体验。

另外我也看到一种处理方法:在输入框的onkeypress、onkeyup、onblur、onchange事件中全部加上超长取消的处理。感觉太多了,只要onkeyup体现即时控制,onchange处理鼠标粘贴、拖入这两个动作就可以了

分享到:
评论

相关推荐

    onkeypress和onkeydown以及onkeyup的区别

    onkeypress和onkeydown以及onkeyup的区别onkeypress和onkeydown以及onkeyup的区别onkeypress和onkeydown以及onkeyup的区别

    手机后台DEMO

    比如你的INPUT是:那么你在里边加入:onKeypress="javascript:if(event.keyCode == 32)event.returnValue = false;"成为:&lt;input type="text" name="userName" onKeypress="javascript:if(event.keyCode == 32)event...

    Javascript中最常用的55个经典技巧

    var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode; if (keyCode == 13) { var i; for (i = 0; i &lt; field.form.elements.length; i++) if (field == field.form...

    onkeyup,onkeydown和onkeypress的区别介绍

    三者在事件的响应上还有一点不同,就是onkeydown 、onkeypress事件响应的时候输入的字符并没有被系统接受,而响应onkeyup的时候,输入流已经被系统接受

    javascript-event-keycode-finder:找出javascript的OnKeyDown,OnKeyUp和OnKeyPress事件调用的键码的简单工具

    Javascript事件键码查找器 找出javascript的OnKeyDown,OnKeyUp和OnKeyPress事件调用的键码的简单工具。 现场演示: :

    检查输入的是否是数字使用keyCode配合onkeypress事件

    代码如下: [removed] function check(event){ //用户每按下一个键,就去判断是不是一个数 if(event.keyCode&lt;48&gt;57){ window.alert&#40;“你输入的不是数字!”&#41;; return false; } } [removed] &lt;body&gt; &lt;...

    数字的正则表达式写法参考书

     &lt;input ime-mode:disabled" onkeydown="if(event.keyCode==13)event.keyCode=9" onKeyPress="if ((event.keyCode|| event.keyCode&gt;57)) event.returnValue=false"&gt; 8.只能输入英文和数字(有闪动)  &lt;input ...

    js实现键盘控制图片的移动

    &lt;script type="text/javascript"&gt; function test(id){ alert(id); } if(typeof GetControlundefined) GetControl=function (id) { return document.getElementById(id); }; ...

    HTML_js_正则表达式

    1.文本框只能输入数字代码(小数点也不能输入) &lt;input onkeyup="this.value=...&lt;input onKeyPress="if((event.keyCode|| event.keyCode&gt;57) && event.keyCode!=46 || /\.\d\d$/.test(value))event.returnValue=false"&gt;

    如何防止回车(enter)键提交表单

    如何防止回车(enter)键提交表单,其实很简单,就一句话。onkeydown=”if(event.keyCode==13)return ...返回值必须是false 代码如下: function gosearch() { if(window.event.keyCode == 13) { search(); return fal

    JavaScript onkeypress事件入门实例(按下或按住一个键盘按键)

    JavaScript onkeypress 事件 用户按下或按住一个键盘按键时会触发 onkeypress 事件。 注意:onkeypress 事件与 onkeydown 事件有些细微差别,onkeypress 事件不做相应功能键按下的处理。具体可将下面的示例更改为 ...

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

    onkeypress 和 onkeydown 是有区别,下面将讲解 onkeypress 与 onkeydown 事件的区别。 onkeypress 事件在用户按下并放开任何字母数字键时发生。但是系统按钮(例如:箭头键、功能键)无法得到识别。 onkeydown 事件...

    javascript onkeydown,onkeyup,onkeypress,onclick,ondblclick

    昨天群里面的朋友问了个比较有意思的问题,keydown,keyup,keypress事件的先后顺序。

    常用限制input的方法的js代码

    1.取消按钮按下时的虚线框,在input里添加属性值 hideFocus 或者 HideFocus=true 2.只读文本框内容,在input...input type=text style=ime-mode:disabled onkeydown=if(event.keyCode==13)event.keyCode=9 onkeypress=i

    JavaScript onkeydown事件入门实例(键盘某个按键被按下)

    JavaScript onkeydown 事件 用户按下一个键盘按键时会触发 onkeydown 事件。与 onkeypress 事件不同的是,onkeydown 事件是响应任意键按下的处理(包括功能键),onkeypress 事件只响应字符键按下后的处理。 提示 ...

    用SSH+DWR+Oracle做的模拟Google搜索

    &lt;form onkeypress="javascript:if(event.keyCode==13)event.keyCode=0;"&gt; 6、如果用js阻止用户空格或多个空格去数据库查询记录? var pattern = /\s+/gi; pattern.test(str); 7、对空白字符的处理,关键字处理

    js使用小技巧

    &lt;input type=text onkeypress="return event.keyCode&gt;=48&&event.keyCode||(this.value.indexOf(".")&lt;0?event.keyCode==46:false)" onpaste="return !clipboardData.getData("text").match(/D/)" ondragenter=...

    javascript 同时在IE和FireFox获取KeyCode的代码

    input type=”password” name=”psw” id=”loginpsw” onkeypress=”submit1... if (isie) key = window.event.keyCode;//IE使用windows.event事件 else { key = e.which;//3个按键函数有一个默认的隐藏变量,这里

    asp.net TextBox回车触发事件 图片在img显示

    TextBox回车触发事件 代码如下: //直接在js中写 [removed] function EnterTextBox() { if(event.keyCode == 13 && document.all[“TextBox1”].value != “”) { event.keyCode = 9; event.returnValue = false; ...

    浅析OnKeyPress事件和OnKeyDownOnKeyUp事件

    浅析OnKeyPress事件和OnKeyDown、OnKeyUp事件

Global site tag (gtag.js) - Google Analytics