JS捕获页面按键事件
有时候我们需要捕获页面上的按键(如回车键)事件,以达到一些特殊效果,例如在登录页面用户输入完登录名和密码后习惯直接敲回车,这时需要捕获回车事件。
浏览器通过keyCode属性可以获取按键代码。
document对象的按钮弹起事件(捕获按下事件也可以),浏览器会将用户按下的按键信息对象传递到事件回调函数中(以参数的形式),传入函数中的这个按键信息中包含了一个用来识别按键的编号(每个按键都有一个对应的编号)。
例1、模拟输入后回车验证
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title> JS捕获页面按键事件</title>
</head>
<body>
<p>输入文本回车验证处理</p>
<input type="text" id="me"/>
<script>
window.onload=function(){
document.getElementById("me").onkeydown=function(event){
if(event.keyCode===13){ //回车键的键值:13
alert('对你的输入:' + document.getElementById("me").value + ' 进行验证...')
}
}
}
</script>
</body>
</html>
我将此保存文件名为:捕捉按键1.html
用浏览器打开,参见下图:
例2、按下E键,输出HELLO
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>捕捉E键</title>
</head>
<body >
<p>按下键E,在文本框中显示HELLO</p>
<input value="" id="me"/>
<script>
document.onkeyup = function (ev) { //按键信息对象以函数参数的形式传递进来
var code = ev.keyCode; //取出按键代码
if (code == 69) { // 键E代码69
//alert('HELLO')
document.getElementById("me").value = 'HELLO';
}
}
</script>
</body>
</html>
我将此保存文件名为:捕捉按键2.html
用浏览器打开,参见下图:
例2代码可改为如下,效果一样。
<html>
<head>
<meta charset="utf-8">
<title>捕捉E键</title>
</head>
<body onkeyup="test1(event)">
<p>按下键E,在文本框中显示HELLO</p>
<input value="" id="me"/>
<script>
function test1(ev){ //按键信息对象以函数参数的形式传递进来
var code = ev.keyCode; //取出按键代码
if (code == 69) { // 键E代码69
//alert('HELLO')
document.getElementById("me").value = 'HELLO';
}
}
</script>
</body>
</html>
两者代码差异之处,参见下图:
在线键盘码查询 鼠标和键盘对照表javascript Keycode
关于JavaScript事件更多情况,可参见
JavaScript事件示例_cnds123的专栏-CSDN博客
事件介绍 - 学习 Web 开发 | MDN 从中可以学习JS事件绑定的方式、事件对象等知识
附录、编程语言中的事件(Event)和事件处理器(Event Handlers、事件处理程序)
编程中的事件是对象对刺激的响应,事件可以用来触发一段特定的代码。事件分为:外部事件和内部事件。外部事件:由外部用户动作产生的事件。例如,点击鼠标、按键盘。内部事件:由系统内部产生的事件。例如,定时器事件。事件中执行的代码需要程序员编写。
事件驱动程序设计(Event-driven programming)是一种电脑程序设计模型。这种模型的程序执行流程是由用户的动作(如鼠标的按键,键盘的按键动作)或者是由其他程序的消息来决定的。事件驱动程序设计这种设计模型是在交互程序(Interactive program)的情况下孕育而生的。
事件驱动程序可以由任何编程语言来实现,然而使用某些语言来撰写会比其他的语言来的简单。属于事件驱动的编程语言有:VB、C#、JavaScript 、Java(Java Swing的GUI)、Python基于tkinter的GUI编程等。