JS控制输入框只输入数字类型  <tr bgcolor="#FFFFFF" >  
                   <td>报价金额</td>  
                  <td><input type="text" name="PRICE" id="PRICE"  class="text_8"  style="width:120px;" onkeyup="clearNoNum(this)" /><span style="color:red;" mce_style="color:red;">币种:RMB(请填写数字类型)</span></td>  
 </trfunction clearNoNum(obj)
{
//先把非数字的都替换掉,除了数字和.
obj.value = obj.value.replace(/[^\d.]/g,"");

//必须保证第一个为数字而不是.
obj.value = obj.value.replace(/^\./g,"");

//保证只有出现一个.而没有多个.
obj.value = obj.value.replace(/\.{2,}/g,".");

//保证.只出现一次,而不能出现两次以上
obj.value = obj.value.replace(".","$#$").replace(/\./g,"").replace("$#$",".");

//限制金额小数点位数为两位
if (/^\d+\.?\d{0,2}$/.test(obj.value)) {
            obj.value = obj.value;
    } else {obj.value = obj.value.substring(0, obj.value.length - 1);}
}

解决方案 »

  1.   

    function clearNoNum(obj)
    {
    var fh='';
    if(obj.value.indexOf('-')==0){
        fh='-';
    }
    //先把非数字的都替换掉,除了数字和.
    obj.value = obj.value.replace(/[^\d.]/g,"");//必须保证第一个为数字而不是.
    obj.value = obj.value.replace(/^\./g,"");//保证只有出现一个.而没有多个.
    obj.value = obj.value.replace(/\.{2,}/g,".");//保证.只出现一次,而不能出现两次以上
    obj.value = obj.value.replace(".","$#$").replace(/\./g,"").replace("$#$",".");//限制金额小数点位数为两位
    if (/^\d+\.?\d{0,2}$/.test(obj.value)) {
      obj.value = obj.value;
      } else {
        obj.value = obj.value.substring(0, obj.value.indexOf(".")+3);
    }
    obj.value=fh+obj.value;
    fh='';
    }
      

  2.   

    //凭证不允许输入负数,负数可以转化为借贷的相反值。
    function clearNoNum(obj)
    {
        //先把最前面的负号
    var fh ='';
    if(obj.value.indexOf('-') ==0){
      fh ='-';
    }

    //先把非数字的都替换掉,除了数字和.
    obj.value = obj.value.replace(/[^\d.]/g,"");

    //必须保证第一个为数字而不是.
    obj.value = obj.value.replace(/^\./g,"");

    //保证只有出现一个.而没有多个.
    obj.value = obj.value.replace(/\.{2,}/g,".");

    //保证.只出现一次,而不能出现两次以上
    obj.value = obj.value.replace(".","$#$").replace(/\./g,"").replace("$#$",".");

    //限制金额小数点位数为两位
    if (/^\d+\.?\d{0,2}$/.test(obj.value)) {
                obj.value = obj.value;
        } else {obj.value = obj.value.substring(0, obj.value.length - 1);}
        
        obj.value =fh +obj.value;
        
        //如果允许只输入负号:-,就设为空值。
        //因为如果允许只输入符号:-,用户可能只输入负号,就不输入数字,就会报错。
        //所以如果要输入负数,要先输入数字,最后在数字最前面加上负号。
        if ((obj.value) =="-")
           obj.value ="";    
    }