javascript屏蔽TextBox键盘输入非数字字符

发布时间:2020-06-01编辑:脚本学堂
如何用javascript屏蔽TextBox键盘输入非数字字符呢?本文给出一个不错的方法,有需要的朋友,快来参考下吧。

本文给出的方法,只能屏蔽从键盘输入非数字字符,不能屏蔽粘贴的非数字字符。供大家参考。

在TextBox中onkeyup事件中,添加onlyNumber(this)方法。
 

复制代码 代码示例:
function onlyNumber(obj)
{
 //37 表示 "<-"键  39表示"->"键  46表示"Delete"键  190表示">."键  110表示 ".Del" 键 48~57表示大键盘区的数字 96~105表示小键盘区的数字
  if(event.keyCode==37||event.keyCode==39 || event.keyCode==46 || event.keyCode==190||event.keyCode == 110 ||  (event.keyCode>=48 && event.keyCode<=57) || (event.keyCode>=96 && event.keyCode<=105))
      {
            if (event.keyCode==46 || event.keyCode ==190)
            {
                 if (obj.value.indexOf(".") != obj.value.lastIndexOf("."))
                 {
                     obj.value = obj.value.substr(0,obj.value.length -1);
                }
           }
     }
     else
     {
        obj.value = obj.value.substr(0,obj.value.length -1);
     }
   if(obj.value.lastIndexOf('.')>-1) //after . all is 0
          {
             if(obj.value.indexOf('.')==obj.value.lastIndexOf('.'))
              {
                    var val=obj.value.substr(obj.value.lastIndexOf('.')+1);
                   var isAll0=true;
                  for(var i=0;i<val.length;i++)
                  {
                        if(val.substr(i,1)!='0')
                        {
                           isAll0=false;
                          break;
                       }  
                 }
                 if(isAll0)
                   return;
             }
         }  
    if(isNaN(parseFloat(obj.value)))
    {
        return obj.value = "";
    }
    else
    {
      // var pos = obj.id.substr(13);
       return obj.value = parseFloat(obj.value);
}        
}

脚本,就在脚本学堂,www.jb200.com。