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弹出层插件简化版代码下载
Oct 16 Javascript
悄悄用脚本检查你访问过哪些网站的代码
Dec 04 Javascript
js实现简单锁屏功能实例
May 27 Javascript
深入理解JavaScript编程中的原型概念
Jun 25 Javascript
JavaScript使ifram跨域相互访问及与PHP通信的实例
Mar 03 Javascript
前端学习笔记style,currentStyle,getComputedStyle的用法与区别
May 28 Javascript
AngularJS表达式讲解及示例代码
Aug 16 Javascript
js获取时间函数及扩展函数的方法
Oct 30 Javascript
使用 jQuery.ajax 上传带文件的表单遇到的问题
Oct 31 Javascript
js实现数组内数据的上移和下移的实例
Nov 14 Javascript
JavaScript indexOf()原理及使用方法详解
Jul 09 Javascript
微信小程序实现天气预报功能(附源码)
Dec 10 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
几种显示数据的方法的比较
2006/10/09 PHP
PHP管理内存函数 memory_get_usage()使用介绍
2012/09/23 PHP
ThinkPHP中create()方法自动验证实例
2017/04/26 PHP
JQuery扩展插件Validate 3通过参数设置错误信息
2011/09/05 Javascript
js导出格式化的excel 实例方法
2013/07/17 Javascript
探讨JavaScript中声明全局变量三种方式的异同
2013/12/03 Javascript
基于JQuery实现的Select级联
2014/01/27 Javascript
jquery attr方法获取input的checked属性问题
2014/05/26 Javascript
Node.js中对通用模块的封装方法
2014/06/06 Javascript
javascript元素动态创建实现方法
2015/05/13 Javascript
前端微信支付js代码
2016/07/25 Javascript
同步异步动态引入js文件的几种方法总结
2016/09/23 Javascript
关于webuploader插件使用过程遇到的小问题
2016/11/07 Javascript
JavaScript对JSON数据进行排序和搜索
2017/07/24 Javascript
深入理解 webpack 文件打包机制(小结)
2018/01/08 Javascript
详解vue+vuex+koa2开发环境搭建及示例开发
2018/01/22 Javascript
elementUI Vue 单个按钮显示和隐藏的变换功能(两种方法)
2018/09/04 Javascript
vue 解决循环引用组件报错的问题
2018/09/06 Javascript
vue中多路由表头吸顶实现的几种布局方式
2019/04/12 Javascript
JS获取本地地址及天气的方法实例小结
2019/05/10 Javascript
微信小程序实现一张或多张图片上传(云开发)
2019/09/25 Javascript
Python中pip安装非PyPI官网第三方库的方法
2015/06/02 Python
Python 实现OpenCV格式和PIL.Image格式互转
2020/01/09 Python
Tensorflow训练MNIST手写数字识别模型
2020/02/13 Python
python基于exchange函数发送邮件过程详解
2020/11/06 Python
python 通过pip freeze、dowload打离线包及自动安装的过程详解(适用于保密的离线环境
2020/12/14 Python
美国鲜花递送:UrbanStems
2021/01/04 全球购物
竞聘书格式及范文
2014/03/31 职场文书
学生请假条格式
2014/04/11 职场文书
活动倡议书范文
2014/05/13 职场文书
企业优秀员工事迹材料
2014/05/28 职场文书
2014年大学生村官工作总结
2014/11/19 职场文书
先进个人总结范文
2015/02/15 职场文书
五四青年节比赛演讲稿
2015/03/18 职场文书
2015小学毕业班工作总结
2015/07/21 职场文书
Python实现双向链表
2022/05/25 Python