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优化尝试小结
Feb 06 Javascript
用js代码改变单选框选中状态的简单实例
Dec 18 Javascript
JavaScript控制网页平滑滚动到指定元素位置的方法
Apr 17 Javascript
js实现仿Windows风格选项卡和按钮效果实例
May 13 Javascript
javascript制作的滑动图片菜单
May 15 Javascript
基于Jquery和CSS3制作数字时钟附源码下载(CSS3篇)
Nov 24 Javascript
20分钟成功编写bootstrap响应式页面 就这么简单
May 12 Javascript
javascript 小数乘法结果错误的处理方法
Jul 28 Javascript
Vuejs仿网易云音乐实现听歌及搜索功能
Mar 30 Javascript
webpack实现热更新(实施同步刷新)
Jul 28 Javascript
javascript 中模板方法单例的实现方法
Oct 17 Javascript
如何用JavaScript实现功能齐全的单链表详解
Feb 11 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 session会话的安全性分析
2011/09/08 PHP
php与java通过socket通信的实现代码
2013/10/21 PHP
PHP set_error_handler()函数使用详解(示例)
2013/11/12 PHP
PHP永久登录、记住我功能实现方法和安全做法
2015/04/27 PHP
PHP模板引擎Smarty内建函数详解
2016/04/11 PHP
浅谈PHP发送HTTP请求的几种方式
2017/07/25 PHP
thinkPHP5框架闭包函数与子查询传参用法示例
2018/08/02 PHP
Laravel相关的一些故障解决
2020/08/19 PHP
IE 缓存策略的BUG的解决方法
2007/07/21 Javascript
JS运行耗时操作的延时显示方法
2010/11/19 Javascript
JavaScript 一道字符串分解的题目
2011/08/03 Javascript
js弹出的对话窗口永远保持居中显示
2012/12/15 Javascript
js触发asp.net的Button的Onclick事件应用
2013/02/02 Javascript
JS实现点击上移下移LI行数据的方法
2015/08/05 Javascript
JS实现网页上随机产生超链接地址的方法
2015/11/09 Javascript
jQuery学习笔记之Ajax用法实例详解
2015/12/01 Javascript
Js 获取当前函数参数对象的实现代码
2016/06/20 Javascript
vue.js表格组件开发的实例详解
2016/10/12 Javascript
Vue 实现树形视图数据功能
2018/05/07 Javascript
原生js通过一行代码实现简易轮播图
2019/06/05 Javascript
js中比较两个对象是否相同的方法示例
2019/09/02 Javascript
JS数组扁平化、去重、排序操作实例详解
2020/02/24 Javascript
微信公众号网页分享功能开发的示例代码
2020/05/27 Javascript
基于javascript的无缝滚动动画实现2
2020/08/07 Javascript
微信小程序自定义胶囊样式
2020/12/27 Javascript
[00:17]DOTA2荣耀之路5:It’s a disastah!
2018/05/28 DOTA
Python使用Paramiko模块编写脚本进行远程服务器操作
2016/05/05 Python
Python中easy_install 和 pip 的安装及使用
2017/06/05 Python
Python中跳台阶、变态跳台阶与矩形覆盖问题的解决方法
2018/05/19 Python
详解Python Matplotlib解决绘图X轴值不按数组排序问题
2019/08/05 Python
Penhaligon’s英国官网:成立于1870年的英国香水制造商
2021/02/18 全球购物
财务会计专业求职信范文
2013/12/31 职场文书
部队学习十八大感言
2014/01/11 职场文书
写求职信有哪些注意事项
2014/05/08 职场文书
教师自我剖析材料
2014/09/29 职场文书
解决pycharm下载库时出现Failed to install package的问题
2021/09/04 Python