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 构建客户/服务分离的链接模型中Table中的排序分析
Jan 22 Javascript
HTML页面弹出居中可拖拽的自定义窗口层
May 07 Javascript
使用focus方法让光标默认停留在INPUT框
Jul 29 Javascript
sails框架的学习指南
Dec 22 Javascript
使用jQuery管理选择结果
Jan 20 Javascript
浅谈在js传递参数中含加号(+)的处理方式
Oct 11 Javascript
jQuery EasyUI 获取tabs的实例解析
Dec 06 Javascript
angularJS利用ng-repeat遍历二维数组的实例代码
Jun 03 Javascript
详解vue slot插槽的使用方法
Jun 13 Javascript
使用node.js对音视频文件加密的实例代码
Aug 30 Javascript
基于vue1和vue2获取dom元素的方法
Mar 17 Javascript
前端JavaScript大管家 package.json
Nov 02 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
2006/12/13 PHP
php web环境和命令行环境下查找php.ini的位置
2019/07/17 PHP
php中数组最简单的使用方法
2020/12/27 PHP
MooTools 1.2介绍
2009/09/14 Javascript
基于jquery的无缝循环新闻列表插件
2011/03/07 Javascript
JavaScript的模块化:封装(闭包),继承(原型) 介绍
2013/07/22 Javascript
jquery实现下拉菜单的二级联动利用json对象从DB取值显示联动
2014/03/27 Javascript
js简单的表格添加行和删除行操作示例
2014/03/31 Javascript
基于javascript实现全屏漂浮广告
2016/03/31 Javascript
AngularJS中$http服务常用的应用及参数
2016/08/22 Javascript
AngularJS实践之使用NgModelController进行数据绑定
2016/10/08 Javascript
angularjs实现过滤并替换关键字小功能
2017/09/19 Javascript
Node.JS使用Sequelize操作MySQL的示例代码
2017/10/09 Javascript
PostgreSQL Node.js实现函数计算方法示例
2019/02/12 Javascript
一篇文章弄懂javascript中的执行栈与执行上下文
2019/08/09 Javascript
浅谈对于“不用setInterval,用setTimeout”的理解
2019/08/28 Javascript
js实现整体缩放页面适配移动端
2020/03/31 Javascript
Openlayers实现点闪烁扩散效果
2020/09/24 Javascript
JS实现简易图片自动轮播
2020/10/16 Javascript
vue+element table表格实现动态列筛选的示例代码
2021/01/14 Vue.js
python3+dlib实现人脸识别和情绪分析
2018/04/21 Python
python在每个字符后添加空格的实例
2018/05/07 Python
Python 字符串与数字输出方法
2018/07/16 Python
PyQt4实时显示文本内容GUI的示例
2019/06/14 Python
python实现生成Word、docx文件的方法分析
2019/08/30 Python
python实现的读取网页并分词功能示例
2019/10/29 Python
Python爬虫实现百度翻译功能过程详解
2020/05/29 Python
Python使用Matlab命令过程解析
2020/06/04 Python
Spartoo英国:欧洲最大的网上鞋店
2016/09/13 全球购物
美国最大的在线寄售和旧货店:Swap.com
2018/08/27 全球购物
业务总经理岗位职责
2014/02/03 职场文书
村委会贫困证明范文
2014/09/21 职场文书
长城的导游词
2015/01/30 职场文书
少先队入队仪式主持词
2015/07/04 职场文书
详解Nginx 工作原理
2021/03/31 Servers
PyTorch dropout设置训练和测试模式的实现
2021/05/27 Python