查看: 1267|回复: 0

[other] JavaScript截获回车键的方法并模拟Tab键

 关闭 [复制链接]

该用户从未签到

发表于 2016-4-25 22:20:26 | 显示全部楼层 |阅读模式
使用JavaScript处理键盘按键事件,例如回车、tab、ESC等,原理很简单,处理window.event.keyCode对象就行了。
window.event.keyCode 获取当前按键的ASCII码。
以前在网上看书的时候,总是希望能有一个功能,当按"->"方向键时,可以自动跳转到下一章,今天终于实现了这个功能,顺便也掌握了js中判断键盘按键的方法.权以此文志之!

判断方法:
在填写表单时,习惯性会按下回车键,这将导致表单提交,很不好,这里介绍一个方法截获它。
  其实很简单,只要在想截获的区域增加Onkeydown事件函数,并在执行函数中写下如下语句:
  if (window.event.keyCode==13) window.event.keyCode=0
  这样就取消回车键了
  如果想模拟Tab键,只要写成
  if (window.event.keyCode==13) window.event.keyCode=9
  就行了,它会跳到另一个元素上。
表 3. DHTML 键盘事件

名称 说明
onkeypress
这个事件在用户按下并放开任何字母数字键时发生。系统按钮(例如,箭头键和功能键)无法得到识别。

onkeyup
这个事件在用户放开任何先前按下的键盘键时发生。

onkeydown
这个事件在用户按下任何键盘键(包括系统按钮,如箭头键和功能键)时发生。


示例:
function document.onkeydown()
{
if ( event.keyCode=='39' ) //->右箭头
{
window.open("http://www.acehat.com");
}
}

function document.onkeypress()
{
if ( event.keyCode=='43' )
{
alert( '你输入了键盘的 “ + ” 键');
}
}
在使用JavaScript做WEB键盘事件侦听捕获时,主要采用onkeypress、onkeydown、onkeyup三个事件进行出来。该三个事件的执行顺序如下:onkeydown -> onkeypress ->onkeyup。在一般情况下,采用三种键盘事件均可对键盘输入进行有效的响应。当在实际使用中,会发现这几者有些不同的差别。

onkeypress事件不能对系统功能键(例如:后退、删除等,其中对中文输入法不能有效响应)进行正常的响应,onkeydown和onkeyup均可以对系统功能键进行有效的拦截,但事件截获的位置不同,可以根据具体的情况选择不同的键盘事件。

由于onkeypress不能对系统功能键进行捕获,导致window.event对象的keyCode属性和onkeydown,onkeyup键盘事件中获取的keyCode属性不同,主要表现在onkeypress事件的keyCode对字母的大小写敏感,而onkeydown、onkeyup事件不敏感;onkeypress事件的keyCode无法区分主键盘上的数字键和付键盘数字键的,而onkeydown、onkeyup的keyCode对主付键盘的数字键敏感。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

站长推荐上一条 /1 下一条