js中的键盘事件包括onkeydown、onkeyup、onkeypress
1、onkeydown
键盘按下后就会立即执行的事件,不管是数字键、字母键还是功能键都能触发这个事件。
onkeydown有个特点:键盘一直按下会不停地触发事件,连续触发时,第一次和第二次的触发时间间隔会比较长一点,后面触发速度就非常的快。这种设计是为了防止误操作的发生。
document.onkeydown = function(event){
event = event || window.event
//event.keyCode:获取按下的键盘按键Unicode编码的值。
if(event.keyCode === 49)
console.log('我按下的是数字1')
}
//判断两个按键是否都被按下
//event.ctrlKey:按下ctrl,值为true,否则为false
//还有event.altKey、event.shiftKey
document.onkeydown = function(event){
event = event || window.event
if(event.keyCode === 67 && event.ctrlKey)
console.log('我按下的是ctrl+C,进行复制')
if(event.keyCode === 86 && event.ctrlKey)
console.log('我按下的是ctrl+V,进行黏贴')
}
//禁止input输入框输入数字
var input = document.getElementsByTagName("input")[0];
input.onkeydown = function(event){
event = event || window.event;
console.log(event.keyCode);
//数字 48 - 57
//使文本框中不能输入数字
if(event.keyCode >= 48 && event.keyCode <= 57){
//在文本框中输入内容,属于onkeydown的默认行为
//如果在onkeydown中取消了默认行为,则输入的内容,不会出现在文本框中
return false;
}
}
2、onkeyup
键盘松开后立马执行的事件。
...
3、onkeypress
键盘按键被按下并释放一个键时执行。数字键、字母键能触发事件,但是功能键按下后不会触发这个事件,比如Esc、Tab、CapsLock、Shift、Ctrl、Alt、Delete、Backspace、四个方向键。
...
补充一些常用按键对应的Unicode编码:
Enter:13
space:32
Left:37
Up:38
Right:39
Down:40