[转]OnKeyDown Numeric Validator CLIENT SIDE
2016-03-07 10:12
288 查看
本文转自:http://forums.asp.net/t/1211724.aspx?OnKeyDown+Numeric+Validator+CLIENT+SIDE
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Numbers Only Textbox by Josh Stodola</title> <script type="text/javascript"> function numbersOnly(e) { var evt = (e) ? e : window.event; var key = (evt.keyCode) ? evt.keyCode : evt.which; if(key != null) { key = parseInt(key, 10); if((key < 48 || key > 57) && (key < 96 || key > 105)) { if(!isUserFriendlyChar(key)) return false; } else { if(evt.shiftKey) return false; } } return true; } function isUserFriendlyChar(val) { // Backspace, Tab, Enter, Insert, and Delete if(val == 8 || val == 9 || val == 13 || val == 45 || val == 46) return true; // Ctrl, Alt, CapsLock, Home, End, and Arrows if((val > 16 && val < 21) || (val > 34 && val < 41)) return true; // The rest return false; } </script> </head> <body> <h1>Numbers Only Textbox by Josh Stodola</h1> <input type="text" onkeydown="return numbersOnly(event);" onpaste="return false;" /> </body> </html> 强化后:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Numbers Only Textbox by Josh Stodola</title> <script type="text/javascript"> function numbersOnly(obj,e,afterPointLength) { if (typeof(afterPointLength)==='undefined') afterPointLength = 3; var evt = (e) ? e : window.event; var key = (evt.keyCode) ? evt.keyCode : evt.which; var value = obj.value; if ((value.indexOf('.') != -1)) { // alert(value.substring(value.indexOf('.')).length ); } if(key != null) { key = parseInt(key, 10); //只能输入一个小数点 if( (key == 110 && value.indexOf(".") < 0) || (key == 190 && value.indexOf(".") < 0) ){ //alert(value.length); //第一位不能是小数点 if(value.length == 0){ return false; }else{ return true; } } if((key < 48 || key > 57) && (key < 96 || key > 105)) { if(!isUserFriendlyChar(key)){ return false; } } else { if(evt.shiftKey) return false; } } //小数点后2位 if ((value.indexOf('.') != -1)){ if (value.substring(value.indexOf('.')).length > afterPointLength) // && (event.which != 0 && event.which != 8) // && ($(this)[0].selectionStart >= text.length - 2) { if(!isUserFriendlyChar(key)){ return false; } } } return true; } function isUserFriendlyChar(val) { // Backspace, Tab, Enter, Insert, and Delete if(val == 8 || val == 9 || val == 13 || val == 45 || val == 46) return true; // Ctrl, Alt, CapsLock, Home, End, and Arrows if((val > 16 && val < 21) || (val > 34 && val < 41)) return true; // The rest return false; } </script> </head> <body> <h1>Numbers Only Textbox by Josh Stodola</h1> <input type="text" onkeydown="return numbersOnly(this,event);" onpaste="return false;" /> </body> </html>
相关文章推荐
- CentOS6.4_常用命令
- js日期插件dateHelp获取本月、三个月、今年的日期
- ZeroMQ,史上最快的消息队列 —– ZMQ的学习和研究
- 欢迎使用CSDN-markdown编辑器
- MyEclipse 设置自动的代码提示
- python将文件进行解压
- Linux下high CPU分析心得
- [Keepalived] VRRP协议介绍
- 超外差接收机工作原理?
- How to uninstall Visual Studio Express 2012
- android工具类
- 括号匹配(栈)
- [国嵌攻略][113][字符设备驱动模型]
- oracle导入数据库的步骤
- 理解Linux文件系统之inode
- cxf自定义用户拦截器
- struts前后台传值
- Netty4.0学习笔记系列之三:构建简单的http服务
- Java静态内部类的应用
- 106.Examine the data in the LIST_PRICE and MIN_PRICE columns of the PRODUCTS table: