function isNum(inputStr)
   {
      for(var i=0;i<inputStr.length;i++)
      {
         var oneChar=inputStr.substring(i,i+1)
         if(oneChar<0 || oneChar>9)      //不要加引号,否则是字符串比较,即按ascii码比较,数字字符永远小于字母
         {
            alert("请你只输入数字")
            return false
         }
      }
      return true
   }
   function checkIt(form)
   {
      var inputStr=form.numeric.value    //建议加var 否则它是全局变量
      if(isNum(inputStr)==true)
      {}
      else
      {
         form.numeric.focus()
         form.numeric.select()
      }
   }

解决方案 »

  1.   

    改进一下,上面的仍不行
    function isNum(inputStr)
       {
          for(var i=0;i<inputStr.length;i++)
          {
             var oneChar=inputStr.substring(i,i+1)
             if(isNaN(Number(oneChar)))
    .......
      

  2.   

    最后升华:你的函数判断是多余,判断是否是数字的方法:
    !isNaN(Number(字符串))js中 Number(string) 可以把 string转为数字型,如果转换失败,返回NaN,判断某个值是否为NaN用isNaN()函数,
      

  3.   

    function checkIt(form)
       {
          inputStr=form.numeric.value
          if(isNum(inputStr)==true)
          {}
          else
          {
             form.numeric.focus()
             form.numeric.select()
             return false   <----加上
          }
       }
    <form>
    请输入数字:
    <input name="numeric" onChange=checkIt(this.form)><p>
    </form>
    改成
    <form onsubmit="return checkIt(this)">
    请输入数字:
    <input name="numeric"><p>
    </form>