jquery 输入框数字限制插件


Posted in Javascript onNovember 10, 2009

直接看代码:

(function($){ 
var keyCode={ 
BACKSPACE: 8, 
CAPS_LOCK: 20, 
COMMA: 188, 
CONTROL: 17, 
DELETE: 46, 
DOWN: 40, 
END: 35, 
ENTER: 13, 
ESCAPE: 27, 
HOME: 36, 
INSERT: 45, 
LEFT: 37, 
// NUMPAD_ADD: 107, 
// NUMPAD_DECIMAL: 110, 
// NUMPAD_DIVIDE: 111, 
// NUMPAD_ENTER: 108, 
// NUMPAD_MULTIPLY: 106, 
// NUMPAD_SUBTRACT: 109, 
PAGE_DOWN: 34, 
PAGE_UP: 33, 
PERIOD: 190, 
RIGHT: 39, 
SHIFT: 16, 
SPACE: 32, 
TAB: 9, 
UP: 38 
} 
var isControlCode=function(key){ 
for(name in keyCode){ 
if(keyCode[name]==key) 
return true; 
} 
return false; 
} 
var number=function(event){ 
var t=this; 
if(event.shiftKey) 
return false; 
var key=event.keyCode; 
if(isControlCode(key)) 
return; 
if(key<48 || key>105) 
return false; 
if(key>57 && key<96) 
return false; 
} 
var ControlList={}; 
var control=Class.extend({ 
init:function(obj){ 
this.Event=[]; 
this.target=$(obj); 
}, 
Add:function(settings){ 
var t=this; 
t.Event.push(settings); 
return t; 
}, 
Bind:function(){ 
var t=this; 
if(!t.target){ 
return; 
} 
t.target.each(function(){ 
var b=$(this); 
b.bind("keydown",t.event.bind(t)).bind("keyup",t.event.bind(t)); 
if(jQuery.browser.msie) 
{ 
b.bind("paste",t.event.bind(t)); 
} 
else{ 
b.bind("input",t.event.bind(t)); 
} 
}); 
}, 
getmethods:function(type){ 
var t=this; 
var list=[]; 
$(t.Event).each(function(i,item){ 
if(!item.type || !item.method) 
return; 
if(item.type=="all"){ 
list.push(item.method); 
}else 
{ 
if(item.type==type){ 
list.push(item.method); 
} 
} 
}); 
return list; 
}, 
IsSuccess:function(list,event,obj){ 
var istrue=true; 
for(var i=0;i<list.length;i++){ 
if(list[i].call(obj,event)===false) 
{ 
istrue=false; 
break; 
} 
} 
return istrue; 
}, 
event:function(ev){ 
var t=this; 
var event=ev.originalEvent; 
var obj=ev.target; 
return t.IsSuccess(t.getmethods(ev.type),event,obj); 
} 
}); 
control.Add=function(obj,settings){ 
var con= ControlList[this.selector]; 
if(!con) 
{ 
con=new control(obj); 
ControlList[this.selector]=con; 
con.Bind(); 
} 
con.Add(settings); 
return control; 
} 
$.fn.numberable=function(){ 
$(this).css("imeMode","disabled"); 
control.Add(this,{type:"keydown",method:number}).Add(this,{type:"keyup",method:number}); 
function repnumber(event){ 
var o= $(this); 
if(o.val()){ 
o.val(o.val().replace(/[^\d]/g,"")); 
} 
} 
if(jQuery.browser.msie){ 
control.Add(this,{type:"paste",method:function(event){var o=this; 
setTimeout(repnumber.bind(o,event),0); 
} 
}); 
} 
else 
{ 
control.Add(this,{type:"input",method:repnumber}); 
} 
return this; 
} 
})(jQuery);

用法:
$(".class").numberable();

这只是限制了数字,还可以扩展其他的功能,
Javascript 相关文章推荐
JQuery的ajax获取数据后的处理总结(html,xml,json)
Jul 14 Javascript
客户端js性能优化小技巧整理
Nov 05 Javascript
javascript确认框的三种使用方法
Dec 17 Javascript
vue2.0 axios前后端数据处理实例代码
Jun 30 Javascript
Angular利用trackBy提升性能的方法
Jan 26 Javascript
Vue与Node.js通过socket.io通信的示例代码
Jul 25 Javascript
解决JavaScript layui 下拉框不显示的问题
Aug 14 Javascript
一步步教你利用Docker设置Node.js
Nov 20 Javascript
关于layui表单中按钮自动提交的解决方法
Sep 09 Javascript
JS实现电脑虚拟键盘打字测试
Jun 24 Javascript
Vue项目打包编译优化方案
Sep 16 Javascript
解决antd Form 表单校验方法无响应的问题
Oct 27 Javascript
通过隐藏option实现select的联动效果
Nov 10 #Javascript
Riot.js 快速的JavaScript单元测试框架
Nov 09 #Javascript
asp.net HttpHandler实现图片防盗链
Nov 09 #Javascript
为javascript添加String.Format方法
Aug 11 #Javascript
prototype 中文参数乱码解决方案
Nov 09 #Javascript
jQuery 常见学习网站与参考书
Nov 09 #Javascript
Javascript select下拉框操作常用方法
Nov 09 #Javascript
You might like
Eclipse中php插件安装及Xdebug配置的使用详解
2013/04/25 PHP
作为PHP程序员应该了解MongoDB的五件事
2013/06/03 PHP
php简单截取字符串代码示例
2016/10/19 PHP
详解PHP编码转换函数应用技巧
2016/10/22 PHP
解析 thinkphp 框架中的部分方法
2017/05/07 PHP
js+FSO遍历文件夹下文件并显示
2007/03/07 Javascript
服务器安全设置的几个注册表设置
2007/07/28 Javascript
图片连续滚动代码[兼容IE/firefox]
2009/06/11 Javascript
学习ExtJS form布局
2009/10/08 Javascript
JavaScript DOM 学习第三章 内容表格
2010/02/19 Javascript
浅谈Javascript实现继承的方法
2015/07/06 Javascript
javascript实现简单的全选和反选功能
2016/01/05 Javascript
Javascript将数值转换为金额格式(分隔千分位和自动增加小数点)
2016/06/22 Javascript
Angular Module声明和获取重载实例代码
2016/09/14 Javascript
jQuery插件HighCharts绘制2D饼图效果示例【附demo源码下载】
2017/03/21 jQuery
angular $watch 一个变量的变化(实例讲解)
2017/08/02 Javascript
React Native AsyncStorage本地存储工具类
2017/10/24 Javascript
JS实现从对象获取对象中单个键值的方法示例
2019/06/05 Javascript
vue与iframe之间的信息交互的实现
2020/04/08 Javascript
Element Collapse 折叠面板的使用方法
2020/07/26 Javascript
[01:03:47]VP vs NewBee Supermajor 胜者组 BO3 第一场 6.5
2018/06/06 DOTA
python实现csv格式文件转为asc格式文件的方法
2018/03/23 Python
python傅里叶变换FFT绘制频谱图
2019/07/19 Python
Python3监控windows,linux系统的CPU、硬盘、内存使用率和各个端口的开启情况详细代码实例
2020/03/18 Python
python开发一个解析protobuf文件的简单编译器
2020/11/17 Python
python 逆向爬虫正确调用 JAR 加密逻辑
2021/01/12 Python
美国最大的袜子制造商和零售商:Renfro Socks
2017/09/03 全球购物
欧洲、亚洲、非洲和拉丁美洲的度假套餐:Great Value Vacations
2019/03/30 全球购物
文明餐桌活动方案
2014/02/11 职场文书
个人委托书格式
2014/04/04 职场文书
万能检讨书2000字
2014/10/17 职场文书
关于感谢信的范文
2015/01/23 职场文书
2015年中个人总结范文
2015/03/10 职场文书
因公司原因离职的辞职信范文
2015/05/12 职场文书
少先队中队工作总结
2015/08/14 职场文书
Vue实现tab导航栏并支持左右滑动功能
2021/06/28 Vue.js