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 (六) jquery中的AJAX使用
Feb 23 Javascript
JS 按钮点击触发(兼容IE、火狐)
Aug 07 Javascript
javascript内置对象arguments详解
Mar 16 Javascript
JS中三目运算符和if else的区别分析与示例
Nov 21 Javascript
使用JS画图之点、线、面
Jan 12 Javascript
IE8下jQuery改变png图片透明度时出现的黑边
Aug 30 Javascript
javascript实现tab切换的四种方法
Nov 05 Javascript
js实现遍历含有input的table实例
Dec 07 Javascript
require简单实现单页应用程序(SPA)
Jul 12 Javascript
功能强大的Bootstrap组件(结合js)
Aug 03 Javascript
jQuery实现鼠标经过显示动画边框特效
Mar 24 jQuery
Vuex中的Mutations的具体使用方法
Jun 01 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网页游戏学习之Xnova(ogame)源码解读(十五)
2014/06/30 PHP
详解PHP的Yii框架中日志的相关配置及使用
2015/12/08 PHP
JS对象与JSON格式数据相互转换
2012/02/20 Javascript
Javascript中Event属性搜集整理
2013/09/17 Javascript
浅析JQuery中的html(),text(),val()区别
2014/09/01 Javascript
JavaScript动态修改背景颜色的方法
2015/04/16 Javascript
Javascript监视变量变化的方法
2015/06/09 Javascript
解决angular的$http.post()提交数据时后台接收不到参数值问题的方法
2015/12/10 Javascript
干货分享:让你分分钟学会javascript闭包
2015/12/25 Javascript
AngularJS框架的ng-app指令与自动加载实现方法分析
2017/01/04 Javascript
微信小程序中子页面向父页面传值实例详解
2017/03/20 Javascript
BootStrap+Mybatis框架下实现表单提交数据重复验证
2017/03/23 Javascript
js字符串与Unicode编码互相转换
2017/05/17 Javascript
jQuery实现菜单栏导航效果
2017/08/15 jQuery
Vue自定义全局弹窗组件操作
2020/08/11 Javascript
小程序实现列表倒计时功能
2021/01/29 Javascript
[02:07]TI9显影之尘系列 - Vici Gaming
2019/08/20 DOTA
Python实现短网址ShortUrl的Hash运算实例讲解
2015/08/10 Python
python处理数据,存进hive表的方法
2018/07/04 Python
详解用python实现基本的学生管理系统(文件存储版)(python3)
2019/04/25 Python
Python如何筛选序列中的元素的方法实现
2019/07/15 Python
Python decorator拦截器代码实例解析
2020/04/04 Python
linux系统下pip升级报错的解决方法
2021/01/31 Python
html5将图片转换成base64的实例代码
2016/09/21 HTML / CSS
可能这些是你想要的H5软键盘兼容方案(小结)
2019/04/23 HTML / CSS
Corelle官方网站:购买康宁餐具
2016/11/02 全球购物
美国玛丽莎收藏奢华时尚商店:Marissa Collections
2016/11/21 全球购物
应届生服装设计自我评价
2013/09/20 职场文书
高中生期末评语大全
2014/01/28 职场文书
小学清明节活动总结
2014/07/04 职场文书
员工家属慰问信
2015/03/24 职场文书
地道战观后感400字
2015/06/04 职场文书
2015年计算机教师工作总结
2015/07/22 职场文书
物业管理交接协议书
2016/03/24 职场文书
python - timeit 时间模块
2021/04/06 Python
Java 泛型详解(超详细的java泛型方法解析)
2021/07/02 Java/Android