function checkKeyPressNumAndPercent()
{
  try{
      if ((window.event.keyCode<48 && window.event.keyCode!=46) || window.event.keyCode>58) 
         {
          window.event.keyCode=0;
          return false;
         }
     }catch(e){alert(e.description);}
}

解决方案 »

  1.   

    在harryyang的基础上补充一下,如果用户输入了多个小数点,那就不爽了,所以在失去焦点的时候判断一下是否为数字。
    <input name=a onkeypress="checkKeyPressNumAndPercent()" onblur="checkNum(this)">
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    function checkNum(thisObj)
    {
       if(isNaN(thisObj.value)){
          alert("只允许输入数字!");
          thisObj.value=0;
       }
    }function checkKeyPressNumAndPercent()
    {
      try{
          if ((window.event.keyCode<48 && window.event.keyCode!=46) || window.event.keyCode>58) 
             {
              window.event.keyCode=0;
              return false;
             }
         }catch(e){alert(e.description);}
    }
    //-->
    </SCRIPT>
      

  2.   

    <input onkeypress="return event.keyCode>=48&&event.keyCode<=57||event.keyCode==46" onpaste="return !clipboardData.getData('text').match(/\D/)" style="ime-mode:Disabled" ondragenter="return false">这是数字输入的完全版,防止拖拽,防止粘贴!:)