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 数组的 uniq 方法
Jan 23 Javascript
判断文件是否正在被使用的JS代码
Dec 21 Javascript
谈谈JSON对象和字符串之间的相互转换JSON.stringify(obj)和JSON.parse(string)
Oct 01 Javascript
完全深入学习Bootstrap表单
Nov 28 Javascript
ES6中的箭头函数实例详解
Apr 06 Javascript
详解微信小程序Page中data数据操作和函数调用
Sep 27 Javascript
详解vue-router 初始化时做了什么
Jun 11 Javascript
Angular angular-file-upload文件上传的示例代码
Aug 23 Javascript
Vue.js中的extend绑定节点并显示的方法
Jun 20 Javascript
js tab栏切换代码实例解析
Sep 03 Javascript
javascript实现前端分页效果
Jun 24 Javascript
详解ES6中class的实现原理
Oct 03 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
法压式咖啡之制作法
2021/03/03 冲泡冲煮
PHP中的cookie不用刷新就生效的方法
2012/02/04 PHP
destoon实现调用图文新闻的方法
2014/08/21 PHP
ThinkPHP框架设计及扩展详解
2014/11/25 PHP
老版本PHP转义Json里的特殊字符的函数
2015/06/08 PHP
浅谈PHP中其他类型转化为Bool类型
2016/03/28 PHP
php 读写json文件及修改json的方法
2018/03/07 PHP
php实现websocket实时消息推送
2018/03/30 PHP
css把超出的部分显示为省略号的方法兼容火狐
2008/07/23 Javascript
js控制框架刷新
2008/08/01 Javascript
你必须知道的JavaScript 变量命名规则详解
2013/05/07 Javascript
js中哈希表的几种用法总结
2014/01/28 Javascript
开源的javascript项目Kissy介绍
2014/11/28 Javascript
jquery搜索框效果实现方法
2015/01/16 Javascript
JavaScript初学者必看“new”
2017/06/12 Javascript
Angular+Bootstrap+Spring Boot实现分页功能实例代码
2017/07/21 Javascript
vue 设置路由的登录权限的方法
2018/07/03 Javascript
layer.alert自定义关闭回调事件的方法
2019/09/27 Javascript
JavaScript中的各种宽高属性的实现
2020/05/08 Javascript
jQuery 函数实例分析【函数声明、函数表达式、匿名函数等】
2020/05/19 jQuery
Python中集合类型(set)学习小结
2015/01/28 Python
Python中顺序表的实现简单代码分享
2018/01/09 Python
Python request设置HTTPS代理代码解析
2018/02/12 Python
python实现k-means聚类算法
2018/02/23 Python
tensorflow创建变量以及根据名称查找变量
2018/03/10 Python
Python协程 yield与协程greenlet简单用法示例
2019/11/22 Python
python多线程semaphore实现线程数控制的示例
2020/08/10 Python
雅诗兰黛旗下专业男士保养领导品牌:Lab Series
2017/05/15 全球购物
美国一家运动专业鞋类零售商:Warehouse Shoe Sale(WSS)
2018/03/28 全球购物
集团公司党的群众路线教育实践活动工作总结
2014/03/03 职场文书
知名企业招聘广告词大全
2014/03/18 职场文书
药品营销专业毕业生自荐信
2014/07/02 职场文书
营业用房租赁协议书
2014/11/26 职场文书
学雷锋日活动总结
2015/02/06 职场文书
MySQL COUNT函数的使用与优化
2021/05/10 MySQL
python3实现无权最短路径的方法
2021/05/12 Python