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处理鼠标粘贴、拖入这两个动作就可以了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值