利用Keydown事件阻止用戶輸入

先了解下各事件的区别

  • keydown:在控件有焦点的情况下按下键时发生
  • keypress:在控件有焦点的情况下按下键时发生
  • keyup:   在控件有焦点的情况下释放键时发生

意义

  1. keypress主要用来接收字母、数字等ANSI字符。keydown 和 keyup 事件过程通常可以捕获键盘除了PrScrn所有按键 (这里不讨论特殊键盘的特殊键)
  2. keypress 只能捕获单个字符,keydown 和 keyup 可以捕获组合键
  3. keypress 不显示键盘的物理状态(SHIFT键),而只是传递一个字符。keypress 将每个字符的大、小写形式作为不同的键代码解释,即作为两种不同的字符。
  4. 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
}

 

效果:

// = 48 && keyCode <= 57 ) return true // 小数字键盘 if (keyCode >= 96 && keyCode <= 105) return true // Backspace键 if (keyCode == 8) return true return false } // ]]>

 

相关:

https://github.com/snandy/e.js/blob/master/test/stop.html

 

 

更多相关文章
一周排行
  • 这篇是关于Metasploit 结构的 ,把Metasploit的结构搞清楚了,就不难理解和使用Metasploit了. 总的来说Msf 结构的组织是比较乱的. Metasploit 是一个渗透框架,用户不但可以使用
  • Description 外卖店一共有N种食物,分别有1到N编号.第i种食物有固定的价钱Pi和保质期Si.第i种食物会在Si天后过期.JYY是不会吃过期食物的.比如JYY如果今天点了一份保质期为1天的食物,那么JYY必
  •  第一步: 如果是XP系统: 1.开始——运行——输入cmd——回车——在打开的窗口中输入net stop WuAuServ 2.开始——运行——输入%windir% 3.在打开的窗口中有个文件夹叫SoftwareD ...
  • 硬件环境: 三台linux服务器:192.168.2.13,192.168.2.15,192.168.2.16. 推荐部署在三台机器上,都部署在一台机器还是会有单点故障,最少1G的内存就够了. 下载最新版本的zook ...
  • 1.首先需要安装ndoutils以将nagios的数据能导入到mysql数据库中.确认系统是否安装DBI和DBD-mysql. #安装DBI-1.616.tar.gz tar xvzf DBI-1.616.tar.g ...
  • 原文http://knowyouknowme.iteye.com/blog/574974 一.decode     在Oracle/PLSQL中,  decode 具有和 IF-THEN-ELSE 一样的功能. de
  • 传送门 Distinct Substrings Time Limit: 1MS   Memory Limit: Unknown   64bit IO Format: %lld & %llu Descripti ...
  • Tuple 字面意思:元组.是.net4.0增加的新特性,是干什么的呢?总结一句,个人觉得这个东西 就是用来在有返回很多种类型的值时可以用到.它提供了8种类型的Tuple,直接看最复杂的那种(其实不是复杂,就是参数比
  • 


    		    EthChannel和STP01
    EthChannel以太信道 交换机之间的链路速度是有限的,也许在某些情况下会变得拥挤Et
  • jfinal 基本應用 定時任務 QuartzPlugin
    jfinal 的定时器的使用: 项目中使用的maven管理器 1.导入要使用的包   2.