web前端开发细节点程序员

详解键盘事件(keydown,keypress,keyup)

2016-12-08  本文已影响0人  07120665a058

一、键盘事件基础

1、定义

顺序为:keydown -> keypress ->keyup

2、示例
<script>
    function keydown(event) {
        console.log('keydown');
    }
    function keypress(event) {
        console.log(event.keyCode);
        console.log(event.charCode);
        console.log('keypress');
    }
    function keyup(event) {
        console.log('keyup');
    }
</script>
<input type="text" onkeydown="keydown()" onkeypress="keypress()" onkeyup="keyup()" />

3、详解

1)用户按下键盘上的字符键时

2)当用户按下非字符键时

3)keyup 事件中无法阻止浏览器默认事件,因为在keypress时,浏览器默认行为已经完成,即将文字输入文本框(尽管这时还没显示),这个时候不管是preventDefault还是returnValue = false,都不能阻止在文本框中输入文字的行为,如要阻止默认行为,必须在keydownkeypress时阻止

<input id="input" value="default" type="text" />
<script>
var input = document.getElementById('input');
input.onkeydown = function() {
    //return false;
    console.log('onkeydown ' + this.value);
}
input.onkeypress = function() {
    //return false;
    console.log('onkeypress ' + this.value);
}
input.onkeyup = function() {
    return false;
    console.log('onkeyup ' + this.value);
}
</script>
//结果为keydown、keypress事件中return false文本框无法输入文字
//在keyup事件中return false文本框可以输入文字

4)发生keypress事件意味着按下的键会影响到屏幕中文本的显示,即在所有浏览器中,按下能够插入或删除字符的键都会触发keypress事件

二、键码和键盘事件

1、键盘中的键
2、keyCode(键码)、which、charCode(字符编码)

简写记忆:

详述:

3、keypress 和 keydown / keyup 的区别

区别简述

区别详解

4、需要注意的地方
5、keyCode对照表

相关文章推荐:
JS键盘事件
键盘事件keydown,keypress,keyup
键盘事件keydown,keypress,keyup区别
键盘事件keydown、keypress、keyup随笔整理总结
Javascript跨浏览器处理键盘事件keydown,keypress,keyup

上一篇下一篇

猜你喜欢

热点阅读