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 相关文章推荐
新浪刚打开页面出来的全屏广告代码
Apr 02 Javascript
ExtJS GridPanel 根据条件改变字体颜色
Mar 08 Javascript
jQuery总体架构的理解分析
Mar 07 Javascript
jQuery动态改变图片显示大小(修改版)的实现思路及代码
Dec 24 Javascript
js 获取站点应用名的简单实例
Aug 18 Javascript
预防网页挂马的方法总结
Nov 03 Javascript
jQuery中 bind的用法简单介绍
Feb 13 Javascript
vue+mockjs模拟数据实现前后端分离开发的实例代码
Aug 08 Javascript
Angular 数据请求的实现方法
May 07 Javascript
JavaScript设计模式之建造者模式实例教程
Jul 02 Javascript
vue 循环加载数据并获取第一条记录的方法
Sep 26 Javascript
vue3.0 项目搭建和使用流程
Mar 04 Vue.js
通过隐藏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
利用文件属性结合Session实现在线人数统计
2006/10/09 PHP
PHP函数strip_tags的一个bug浅析
2014/05/22 PHP
PHP中检索字符串的方法分析【strstr与substr_count方法】
2017/02/17 PHP
laravel5实现微信第三方登录功能
2018/12/06 PHP
yii2 在控制器中验证请求参数的使用方法
2019/06/19 PHP
jQuery操作select的实例代码
2012/06/14 Javascript
解析Jquery的LigerUI如何实现文件上传
2013/07/09 Javascript
vue自定义指令directive实例详解
2018/01/17 Javascript
JavaScript正则表达式函数总结(常用)
2018/02/22 Javascript
Vue单页应用引用单独的样式文件的两种方式
2018/03/30 Javascript
jQuery实现每隔一段时间自动更换样式的方法分析
2018/05/03 jQuery
js实现文件上传功能 后台使用MultipartFile
2018/09/08 Javascript
ES6中的class是如何实现的(附Babel编译的ES5代码详解)
2019/05/17 Javascript
vue父组件给子组件的组件传值provide inject的方法
2019/10/23 Javascript
JS实现网页时钟特效
2020/03/25 Javascript
rhythmbox中文名乱码问题解决方法
2008/09/06 Python
python使用sorted函数对列表进行排序的方法
2015/04/04 Python
Python使用email模块对邮件进行编码和解码的实例教程
2016/07/01 Python
python实现决策树分类算法
2017/12/21 Python
在dataframe两列日期相减并且得到具体的月数实例
2018/07/03 Python
使用python对文件中的数值进行累加的实例
2018/11/28 Python
python读取txt文件,去掉空格计算每行长度的方法
2018/12/20 Python
django的ORM操作 增加和查询
2019/07/26 Python
python用线性回归预测股票价格的实现代码
2019/09/04 Python
Python调用graphviz绘制结构化图形网络示例
2019/11/22 Python
Python捕获异常堆栈信息的几种方法(小结)
2020/05/18 Python
解决html5中的video标签ios系统中无法播放使用的问题
2020/08/10 HTML / CSS
加拿大最大的相机店:Henry’s
2017/05/17 全球购物
生物技术毕业生自荐信
2013/10/23 职场文书
女大学生自我鉴定
2013/12/09 职场文书
学生会个人自荐书范文
2014/02/12 职场文书
上课迟到检讨书
2014/02/19 职场文书
党员评议思想汇报
2014/10/08 职场文书
正规欠条模板
2015/07/03 职场文书
matplotlib之pyplot模块实现添加子图subplot的使用
2021/04/25 Python
nginx访问报403错误的几种情况详解
2022/07/23 Servers