function isFloat(textObj){
  var tmpFloatValue = textObj.value;
  var tmpLength = tmpFloatValue.length;
  var count = 0;
  
  for (var i = 0; i < tmpLength; i++){
    aChar = tmpFloatValue.substring(i,i+1);
    if (aChar != "." && !isNumber(aChar)){
      alert("请输入合法数字!");
      textObj.focus(this);
      textObj.select(this);
      return false;
    }    
  }
  for (var i = 0; i < tmpLength; i++){
    aChar = tmpFloatValue.substring(i,i+1);
    count = 0;
    if (aChar == "."){
      count++;
    }    
  }
  if (count > 1){
    alert("请输入正确的浮点数!");
    textObj.focus(this);
    textObj.select(this);
    return false;
  }
  return true;
}

解决方案 »

  1.   

    <input type=text name=txtInput onkeypress="javascript:checkinput()">
    <script language="javascript">
    function checkinput()
    {
    if (event.keyCode<48 || event.keyCode>57)
    {
      event.returnValue=false;
    }
    }
    </script>
    这样就搞定了。
      

  2.   

     function number(){
    if (event.keyCode<48 || event.keyCode>57 || event.keyCode==118) 
    event.returnValue=false;
    if (event.keyCode==46) 
    event.returnValue=true;
      }
      

  3.   

    function number(){
     if ((event.keyCode<48 && event.keyCode!=46)|| event.keyCode>57 ) 
    event.returnValue=false;

      

  4.   

    方法是没错的,
    可以在提交前再判断输入是否有效还有个方法是防止copy的方法,
    <input type="text" onpaste="return false">忘记查阅这个属性是否有浏览器限制了,反正IE5.5 或者 IE6.0都支持的,,呵呵。
      

  5.   

    用正表达式<input id=t1>
    <input type=button onclick=go() value=验证>
    <script>
    function go()
    {
    var s=t1.value;
    r=/^[0-9]$/;
    a=r.test(s);
    alert(a)
    }
    </script>
      

  6.   

    如果是copy过去的,可以在onblur()里另一段代码进行判断。我的就是这样用的。