展会信息港展会大全

用Keydown事件阻止用户输入的js代码分享
来源:互联网   发布日期:2016-01-27 15:15:23   浏览:2516次  

导读:这篇文章主要介绍了利用Keydown事件阻止用户输入的具体实现,需要的朋友可以参考下先了解下各事件的区别KeyDown:在控件有焦点的情况下按下键时发生KeyPress:在控件有焦点的情况下按下键时发生KeyUp: 在控件有 ...

这篇文章主要介绍了利用Keydown事件阻止用户输入的具体实现,需要的朋友可以参考下

先了解下各事件的区别

KeyDown:在控件有焦点的情况下按下键时发生

KeyPress:在控件有焦点的情况下按下键时发生

KeyUp: 在控件有焦点的情况下释放键时发生

1、KeyPress主要用来接收字母、数字等ANSI字符。KeyDown 和 KeyUP 事件过程通常可以捕获键盘除了PrScrn所有按键(这里不讨论特殊键盘的特殊键

2、KeyPress 只能捕获单个字符,KeyDown 和KeyUp 可以捕获组合键。

3、KeyPress 不显示键盘的物理状态(SHIFT键),而只是传递一个字符。KeyPress 将每个字符的大、小写形式作为不同的键代码解释,即作为两种不同的字符。KeyDown 和KeyUp 不能判断键值字母的大校KeyDown 和 KeyUp 用两种参数解释每个字符的大写形式和小写形式:keycode显示物理的键(将 A 和 a 作为同一个键返回)和 shift指示 shift + key 键的状态而且返回 A 或 a 其中之一。

5、KeyPress 不区分小键盘和主键盘的数字字符,KeyDown 和KeyUp 区分小键盘和主键盘的数字字符。

6、KeyDown、KeyUp事件是当按下 ( KeyDown ) 或松开 ( KeyUp ) 一个键时发生的。由于一般按下键盘的键往往会立即放开(这和鼠标不同),所以这两个事件使用哪个差别不大。而且,up和其他两者还有一个区别:要判断 key修改后的状态必须用up。

我们可以利用keydown事件来阻止用户的输入,比如某输入域只能输入数字

键盘上数字键的keyCode

[48-57] 数字键

[96-105] 数字小键盘

此外允许Backspace键删除

代码如下

代码如下:

var input = document.getElementById('number_ipt')

input.onkeydown = function(e) {

var keyCode = e.keyCode

if ( !isNumber(keyCode) ) return false

}

// 仅能输入数字

function isNumber(keyCode) {

// 数字

if (keyCode >= 48 && keyCode <= 57 ) return true

// 小数字键盘

if (keyCode >= 96 && keyCode <= 105) return true

// Backspace键

if (keyCode == 8) return true

return false

}

赞助本站

人工智能实验室

相关热词: 事件 Keydown js

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港