利用Keydown事件阻止用户输入实现代码
更新时间:2014年03月11日 16:38:29 作者:
这篇文章主要介绍了利用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:在控件有焦点的情况下按下键时发生
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
}
相关文章
详解axios中封装使用、拦截特定请求、判断所有请求加载完毕)
这篇文章主要介绍了axios中封装使用、拦截特定请求、判断所有请求加载完毕的相关知识,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下2019-04-04js实现响应按钮点击弹出可拖拽的非模态对话框完整实例【测试可用】
这篇文章主要介绍了js实现响应按钮点击弹出可拖拽的非模态对话框,结合完整实例形式分析了原生JavaScript实现的可拖拽非模态对话框实现技巧与使用方法,需要的朋友可以参考下2023-04-04JavaScript 全面解析各种浏览器网页中的JS 执行顺序
近来我通过一些测试以全面的解析网页在各种浏览器中的JavaScript代码的执行顺序,在这儿做个记录。2009-02-02
最新评论