试一下下面的代码。对于COPY过来的非数字和非小数点也搞掉了只是小数点是自动加的。。
<script language="javascript">
function control()
{
 var tt,len;
 tt=document.all.t1.value;
 len=tt.length;
 if (len==2) document.all.t1.value=document.all.t1.value+"."
 if (len>=5) document.all.t1.value= document.all.t1.value.substring(0,5)
 }
</script>
<input name="t1" type="text" onkeyup="javascript:value=value.replace(/[^\d.]/g,'');control()" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d.]/g,''))">

解决方案 »

  1.   

    to: hzyood(静候佳音)
    不好意思,你再试试下面的。。
    <script language="javascript">
    function control()
    {
     var tt,len;
     tt=document.all.t1.value;
     len=tt.length;
     if (len>2) {if (tt.indexOf('.')<0) document.all.t1.value=tt.substring(0,2)}
     if (len>4) {if (tt.indexOf('.')==1) document.all.t1.value=tt.substring(0,4)}
     if (len>=5) document.all.t1.value= document.all.t1.value.substring(0,5)
     }
    </script>
    <input name="t1" type="text" onkeyup="javascript:value=value.replace(/[^\d.]/g,'');control()" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d.]/g,''))">
      

  2.   

    由于匆忙,没有过多考虑,昨天给出的代码有问题,深表谦意。
    多谢 hzyood(静候佳音)兄提醒。。静候佳音看看还有什么问题??
    代码改了:
    <script language="javascript">
    function control()
    {
     var tt,len;
     tt=document.all.t1.value;
     len=tt.length;
     if (len>2) {if (tt.indexOf('.')<0) document.all.t1.value=tt.substring(0,2)}
     if (len>4) {if (tt.indexOf('.')==1) document.all.t1.value=tt.substring(0,4)}
     if (len>=5) document.all.t1.value= document.all.t1.value.substring(0,5)
     }
    </script>
    <input name="t1" type="text" onkeyup="javascript:value=value.replace(/[^\d.]/g,'');control()" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d.]/g,''))">