微信提现的时候,输入金额如果输入2位小数后,就不能输入了,前端是如何处理的这个,我用js判断做处理的话   输入的时候会闪烁一下在消失 , 请问微信是如何做的呢?

解决方案 »

  1.   

    function clearNoNum(obj){  
      obj.value = obj.value.replace(/[^\d.]/g,"");  //清除“数字”和“.”以外的字符   
      obj.value = obj.value.replace(/\.{2,}/g,"."); //只保留第一个. 清除多余的   
      obj.value = obj.value.replace(".","$#$").replace(/\./g,"").replace("$#$",".");  
      obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3');//只能输入两个小数   
      if(obj.value.indexOf(".")< 0 && obj.value !=""){//以上已经过滤,此处控制的是如果没有小数点,首位不能为类似于 01、02的金额  
       obj.value= parseFloat(obj.value);  
      }  
    }<input type="text" name="je" onkeyup="clearNoNum(this) ” />元
      

  2.   

    onkeyup 你把这个事件换成onkeydown呢
      

  3.   

    或者onchange事件看看
      

  4.   

    input输入值再过滤肯定会闪动的。
    可以使用一个透明的input放在上面,把值过滤后才显示在另一个input,这样值就不会闪。
      

  5.   

    <input type="text" class="input"
       oninput="this.value=this.value.replace(/^\.+|[^\d.]/g,'').replace(/^00+/,'0').replace(/\.{2}/,'.').replace(/^0([1-9])/,'$1').replace(/^(\d+\.\d{2})[\d.]+$/,'$1')">
    oninput事件并没发现闪动。不过不支持IE8及以下!