input只能输入非负数

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
  <body>
    <input type="text" name="number" onkeyup="onlyNonNegative(this)" />
    <script>
      //通过2步做到输入的为非负数 
      //1.去掉多余的小数点 
      //2.保证只能输入小数点或数字 
      function onlyNonNegative(obj) { 
        var inputChar = event.keyCode; 
        //alert(event.keyCode); 

        //1.判断是否有多于一个小数点 
        if(inputChar==190 ) {//输入的是否为. 
          var index1 = obj.value.indexOf(".") + 1;//取第一次出现.的后一个位置 
          var index2 = obj.value.indexOf(".",index1); 
          while(index2!=-1) { 
            //alert("有多个."); 

            obj.value = obj.value.substring(0,index2); 
            index2 = obj.value.indexOf(".",index1); 
          } 
        } 
        //2.如果输入的不是.或者不是数字,替换 g:全局替换 
        obj.value = obj.value.replace(/[^(\d|.)]/g,""); 
      } 
    </script>
  </body>
</html>

 

posted @ 2017-08-17 09:40  rachelch  阅读(693)  评论(0编辑  收藏  举报