input框只能输入非负数

来源:互联网 发布:mysql怎么设置两个主键 编辑:程序博客网 时间:2024/06/05 19:15
  1. //通过2步做到输入的为非负数  
  2. //1.去掉多余的小数点  
  3. //2.保证只能输入小数点或数字  
  4. function onlyNonNegative(obj) {  
  5.  var inputChar = event.keyCode;  
  6.  //alert(event.keyCode);  
  7.    
  8.  //1.判断是否有多于一个小数点  
  9.  if(inputChar==190 ) {//输入的是否为.  
  10.   var index1 = obj.value.indexOf(".") + 1;//取第一次出现.的后一个位置  
  11.   if(index1==1){//如果第一个值就是点
    obj.value = obj.value.replace(/[^\d]/g,'')
      }
  12.   var index2 = obj.value.indexOf(".",index1);  
  13.   while(index2!=-1) {  
  14.    //alert("有多个.");  
  15.      
  16.    obj.value = obj.value.substring(0,index2);  
  17.    index2 = obj.value.indexOf(".",index1);  
  18.   }  
  19.  }  
  20.  //2.如果输入的不是.或者不是数字,替换 g:全局替换  
  21.  obj.value = obj.value.replace(/[^\d.]/g,'');  

  1. }  


调用方法:

<input type="text" name="number" onkeyup="onlyNonNegative(this)" />


0 0