需求是,一个文本框,只能输入数字和小数点,但是小数点后输入了两个数字后就不能再在后面输入了,但是还是可以对前面的数字进行改动。比如说,我输入了1982.23,就不能在3后面输入数字了,但是可以在1982这几个数字间任意加减数字。小数点后始终只保持两位数字。求教怎么实现,在线等。先谢谢各位了。

解决方案 »

  1.   

    补充下,不是简单的正则验证,是注册到keyup上,小数点后已经有两位数字了,如果再继续在后面输入,文本框直接显示原来的值保持不变.
      

  2.   

    可以在keyup事件里,每次计算小数点后有几位数字,如果超过2个的话,就把在js里 把这个
    e.Handled = true ,让它输了也没有用
      

  3.   


    <input type="text" id="text" />
    <script type="text/javascript">
    document.getElementById("text").onkeyup=function(){
    if(!/^\d*\.?\d{0,2}$/.test(this.value))
    this.value = this.value.replace(/[^\d\.]/g,"").replace(/^(\d*\.?\d{0,2}).*/g,"$1");
    }
    </script>