输入框过滤非数字的js代码_javascript技巧
程序员文章站
2022-05-19 11:41:46
...
HTML:
复制代码 代码如下:
JS:
window.onload=function(e){ var text=document.getElementById("only"),pattern=/\d/,//pattern匹配字母上的数字键 pattern2=/(9[6-9])|(10[0-5])|3(7|9)/,//pattern2匹配小键盘上的数字键和左右方向键 EventHandle={},event=e||window.event;//一个处理事件的对象 //当网页加载的时候,进行判断,对事件处理对象进行定义属性,这样对事件对象的方法只需要进行一次判断,以后的其他事件 //处理程序里面不需要判断 if(event.preventDefault){ EventHandle.preventDefault=function(e){ e.preventDefault(); }; }else{ EventHandle.preventDefault=function(e){ e.returnValue=false; } } text.onkeydown=function(e){ var event=e||window.event;//不同事件的事件对象不一样,这个event和最前面的event不相等 if(!pattern.test(String.fromCharCode(event.keyCode))&&event.keyCode!=8//keyCode=8是退格键,因为可以对输入的数字进行修改,所以退格和左右方向键不禁止 &&!pattern2.test(event.keyCode.toString())||event.shiftKey|| event.ctrlKey||event.metaKey){ EventHandle.preventDefault(event);//如果不用对象的这个方法,写成下面这样,也可以执行,不过每次按下键盘的时候都会进行一次判断 //这个是没有必要的,所以在页面加载的时候对事件处理对象定义一个方法,加载后对象的方法就已经是确定的了,以后时候就可以了 //if(event.preventDefault){ //event.preventDefault(); //}else{ //event.returnValue=false; //} } } }
未注释版本:
window.onload=function(e){ var text=document.getElementById("only"),pattern=/\d/, pattern2=/(9[6-9])|(10[0-5])|3(7|9)/, EventHandle={},event=e||window.event; if(event.preventDefault){ EventHandle.preventDefault=function(e){ e.preventDefault(); }; }else{ EventHandle.preventDefault=function(e){ e.returnValue=false; } } text.onkeydown=function(e){ var event=e||window.event; if(!pattern.test(String.fromCharCode(event.keyCode))&&event.keyCode!=8 &&!pattern2.test(event.keyCode.toString())||event.shiftKey|| event.ctrlKey||event.metaKey){ EventHandle.preventDefault(event); } } }
在IE11里面,F12打开开发者工具里面可以选择IE版本进行调试
推荐阅读
-
javascript简写常用的12个技巧(可以大大减少你的js代码量)
-
js对数字的格式化使用说明_javascript技巧
-
让textarea自动调整大小的js代码_javascript技巧
-
从盛大通行证上摘下来的身份证验证js代码_javascript技巧
-
js 代码集(学习js的朋友可以看下)_javascript技巧
-
IE6中使用position导致页面变形的解决方案(js代码)_javascript技巧
-
JS中动态添加事件(绑定事件)的代码_javascript技巧
-
Js实现双击鼠标自动滚动屏幕的示例代码_javascript技巧
-
js禁止回车提交表单的示例代码_javascript技巧
-
JS 实现Table相同行的单元格自动合并示例代码_javascript技巧