<input type="text" name="number" value="" onKeyPress="javascript:useFloatNumberKey();" maxlength="7" onKeyUp="javascript:checkValue(this);"><script type="text/javascript">
function checkValue(obj)
{
if(obj.value.length == 4)
obj.value += ".";
}
function useFloatNumberKey()
{
if(((event.keyCode < 48) || (event.keyCode > 57)) && (event.keyCode != 46))
event.returnValue = false;
}
</script>最后到服务器端不要忘了再处理一次

解决方案 »

  1.   

    刚才考虑的太简单了...function checkValue(obj)
    {
    if(obj.value.indexOf(".") > -1 && obj.value.indexOf(".") < 4)
    obj.value = obj.value.substring(0, obj.value.indexOf(".")+3);
    else
    {
    if(obj.value.length == 4)
    obj.value += ".";
    }
    }
      

  2.   

    那就换个判断方式好了~
    比如当输入 . 的时候就把maxlength属性改掉
      

  3.   

    <script >
     tx.focus();
     function checkNum(num){
    var re = /^[1-9]{1}[0-9]{3}.[0-9]{2}$/;
    if(re.test(num)){
    tx2.value="yes";
    }else{
    tx2.value="no";
    }
    tx.focus();
     }
    </script>正则 试试看
      

  4.   

    <BODY>
    <input type="text" name="tx"  />
    <input type="button" name="b" value="go" onclick="checkNum(tx.value);" />
    <br>
    <input type="text" name="tx2" />
    </BODY><script >
     tx.focus();
     function checkNum(num){
    var re = /^[1-9]{1}[0-9]{3}.[0-9]{2}$/;
    if(re.test(num)){
    tx2.value="yes";
    }else{
    tx2.value="no";
    }
    tx.focus();
     }
    </script>