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 select控制插件
Aug 17 Javascript
js修改地址栏URL参数解决url参数问题
Dec 15 Javascript
web前端开发JQuery常用实例代码片段(50个)
Aug 28 Javascript
js代码实现点击按钮出现60秒倒计时
Jan 28 Javascript
jQuery中map函数的两种方式
Apr 07 jQuery
Ajax高级笔记 JavaScript高级程序设计笔记
Jun 22 Javascript
Iscrool下拉刷新功能实现方法(推荐)
Jun 26 Javascript
vue移动端监听滚动条高度的实现方法
Sep 03 Javascript
three.js实现炫酷的全景3D重力感应
Dec 30 Javascript
浅析微信小程序modal弹窗关闭默认会执行cancel问题
Oct 14 Javascript
vue中改变滚动条样式的方法
Mar 03 Javascript
vue中实现拖动调整左右两侧div的宽度的示例代码
Jul 22 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
全国FM电台频率大全 - 26 西藏自治区
2020/03/11 无线电
PHP经典的给图片加水印程序
2006/12/06 PHP
php设计模式 Builder(建造者模式)
2011/06/26 PHP
PHP常用的排序和查找算法
2015/08/06 PHP
彻底搞懂JS无缝滚动代码
2007/01/03 Javascript
js 数组实现一个类似ruby的迭代器
2009/10/27 Javascript
jQuery each()小议
2010/03/18 Javascript
Js从头学起(基本数据类型和引用类型的参数传递详细分析)
2012/02/16 Javascript
js字符串转成JSON
2013/11/07 Javascript
js利用事件的阻止冒泡实现点击空白模态框的隐藏
2014/01/24 Javascript
javascript数组去重方法终极总结
2014/06/05 Javascript
每天一篇javascript学习小结(基础知识)
2015/11/10 Javascript
详解Wondows下Node.js使用MongoDB的环境配置
2016/03/01 Javascript
jQuery 判断是否包含在数组中Array[]的方法
2016/08/03 Javascript
Vue.js每天必学之方法与事件处理器
2016/09/06 Javascript
angular6.0使用教程之父组件通过url传递id给子组件的方法
2018/06/30 Javascript
JavaScript捕捉事件和阻止冒泡事件实例分析
2018/08/03 Javascript
在 Vue-CLI 中引入 simple-mock实现简易的 API Mock 接口数据模拟
2018/11/28 Javascript
JavaScript监听触摸事件代码实例
2019/12/30 Javascript
解决vue的router组件component在import时不能使用变量问题
2020/07/26 Javascript
[01:08:17]2018DOTA2亚洲邀请赛3月29日 小组赛B组 EG VS VGJ.T
2018/03/30 DOTA
[04:16]完美世界DOTA2联赛PWL S2 集锦第一期
2020/11/23 DOTA
Python的组合模式与责任链模式编程示例
2016/02/02 Python
python生成n个元素的全组合方法
2018/11/13 Python
pyqt5 使用label控件实时显示时间的实例
2019/06/14 Python
33个Python爬虫项目实战(推荐)
2019/07/08 Python
mac在matplotlib中显示中文的操作方法
2020/03/06 Python
python 图像判断,清晰度(明暗),彩色与黑白实例
2020/06/04 Python
关于Python3的import问题(pycharm可以运行命令行import错误)
2020/11/18 Python
英国办公用品商店:Office Outlet
2018/04/04 全球购物
四风对照检查材料思想汇报
2014/09/20 职场文书
2014年房地产销售工作总结
2014/12/01 职场文书
办公室日常管理制度
2015/08/04 职场文书
2019个人半年工作总结
2019/06/21 职场文书
解决sql server 数据库,sa用户被锁定的问题
2021/06/11 SQL Server
一定要知道的 25 个 Vue 技巧
2021/11/02 Vue.js