input只能输入数字的方法
昨天写后台的表单时的需求,发现自己对这方面的了解很不够,在网友steven_2005的这博文中的实现方式不错,但和我的需求还差一点,所以改进了下(一个输入字符不能是小数点):
// input只能输入数字和小数点
function DigitInput(el,e) {
//8:退格键、46:delete、37-40: 方向键
//48-57:小键盘区的数字、96-105:主键盘区的数字
//110、190:小键盘区和主键盘区的小数
//189、109:小键盘区和主键盘区的负号
var e = e || window.event; //IE、FF下获取事件对象
var cod = e.charCode||e.keyCode; //IE、FF下获取键盘码
//小数点处理
if (cod == 110 || cod == 190){
(el.value.indexOf(".")>=0 || !el.value.length) && notValue(e);
} else {
if(cod!=8 && cod != 46 && (cod<37 || cod>40) && (cod<48 || cod>57) && (cod<96 || cod>105)) notValue(e);
}
function notValue(e){
e.preventDefault ? e.preventDefault() : e.returnValue=false;
}
}
使用方式很简单,要注意的是函数得绑定在onKeydown事件上:
<input type="text" onkeydown = "DigitInput(this,e);" />
或用事件绑定的方式(jQuery的代码):
$('input').bind('keydown', function(e){
DigitInput(this, e);
});