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 相关文章推荐
javascript不同页面传值的改进版
Sep 30 Javascript
js数值和和字符串进行转换时可以对不同进制进行操作
Mar 05 Javascript
IE浏览器下PNG相关功能
Jul 05 Javascript
bootstrap 表单验证使用方法
Jan 11 Javascript
关于Stream和Buffer的相互转换详解
Jul 26 Javascript
Angular4 中内置指令的基本用法
Jul 31 Javascript
Vue Cli与BootStrap结合实现表格分页功能
Aug 18 Javascript
微信小程序中post方法与get方法的封装
Sep 26 Javascript
Vue实现数字输入框中分割手机号码的示例
Oct 10 Javascript
vue 强制组件重新渲染(重置)的两种方案
Oct 29 Javascript
vue中实现动态生成二维码的方法
Feb 21 Javascript
vue下载二进制流图片操作
Oct 26 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
php pack与unpack 摸板字符字符含义
2009/10/29 PHP
关于PHP语言构造器介绍
2013/07/08 PHP
修改destoon会员公司的伪静态中的com目录的方法
2014/08/21 PHP
php实现的zip文件内容比较类
2014/09/24 PHP
Yii中使用PHPExcel导出Excel的方法
2014/12/26 PHP
PHP实现的下载远程图片自定义函数分享
2015/01/28 PHP
PHP正则表达式之捕获组与非捕获组
2015/11/06 PHP
PHP模板引擎Smarty内置变量调解器用法详解
2016/04/11 PHP
php获取文件名称和扩展名的方法
2017/02/07 PHP
PHP中的日期时间处理利器实例(Carbon)
2017/06/09 PHP
javascript中注册和移除事件的4种方式
2013/03/20 Javascript
jQuery表格插件datatables用法汇总
2016/03/29 Javascript
JavaScript实现打地鼠小游戏
2020/04/23 Javascript
JavaScript限定范围拖拽及自定义滚动条应用(3)
2017/05/17 Javascript
深入学习nodejs中的async模块的使用方法
2017/07/12 NodeJs
js中let和var定义变量的区别
2018/02/08 Javascript
vue中render函数的使用详解
2018/10/12 Javascript
Angular7中创建组件/自定义指令/管道的方法实例详解
2019/04/02 Javascript
微信小程序如何获取用户头像和昵称
2019/09/23 Javascript
vue点击当前路由高亮小案例
2019/09/26 Javascript
JavaScript实现网页计算器功能
2020/10/29 Javascript
[37:21]完美世界DOTA2联赛PWL S2 Inki vs Magma 第二场 11.22
2020/11/24 DOTA
python计算最小优先级队列代码分享
2013/12/18 Python
python Opencv将图片转为字符画
2021/02/19 Python
Flask之请求钩子的实现
2018/12/23 Python
Python OpenCV 使用滑动条来调整函数参数的方法
2019/07/08 Python
来自Ocado的宠物商店:Fetch
2018/07/10 全球购物
物流仓储实习自我鉴定
2013/09/25 职场文书
青年教师培训方案
2014/02/06 职场文书
幼儿园元旦亲子活动方案
2014/02/17 职场文书
2015年中学团委工作总结
2015/07/22 职场文书
践行三严三实心得体会(2016推荐篇)
2016/01/06 职场文书
2016年艾滋病宣传活动总结
2016/04/01 职场文书
如何撰写出一份完美的商业计划书?
2019/07/12 职场文书
职场新人知识:如何制定一份合理的工作计划?
2019/09/11 职场文书
mysql死锁和分库分表问题详解
2021/04/16 MySQL