一.键盘事件
键盘事件一般都会绑定给一些可以获取到焦点的对象或者是document
1.onkeydown:按键被按下
- 对于onkeydown来说如果一直按着某个按键不松手,则事件会一直触发
- 当onkeydown连续触发时,第一次和第二次之间会间隔稍微长一点,其他的会非常的快
这种设计是为了防止误操作的发生。
2.onkeyup:按键被松开
<script type="text/javascript">
window.onload=function () {
//同时按下Ctrl和Y,才会弹框
document.onkeydown=function (event) {
event=event||window.event;
if(event.keyCode==89&&event.ctrlKey){
alert("ctr+y")
}
}
}
</script>
<body>
</body>
二.事件对象event的常用键盘属性
- altKey: “ALT” 是否被按下。如果按下则返回true,否则返回false
- ctrlKey: “CTRL” 键是否被按下。如果按下则返回true,否则返回false
- shiftKey: “SHIFT” 键是否被按下。如果按下则返回true,否则返回false
keyCode:获取按下的键盘按键Unicode值
<input type="text" onkeydown="myFunction(event)">
function myFunction(event) {
event=event||window.event;
var x = event.keyCode;
if (x == 27) { // 27 是 ESC 键
alert ("You pressed the Escape key!");
}
}
在文本框中输入内容,属于onkeydown的默认行为,若键盘按下,输入框中不显示,可以在文本框的onkeydown事件中return false,取消默认行为。
//获取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;
}
};