for (i=parseInt(tt1.value);i<=parseInt(tt2.value);i++)

解决方案 »

  1.   

    一楼用的parseInt问题多多,若输入1~7,这和输入01~07的结果是一样的,但输入8、9 就和 08 、 09 完全不一样了,以 0 开头的数字 被认为是 八进制
      

  2.   

    换evalfor (i=eval(tt1.value);i<=eval(tt2.value);i++)
      

  3.   

    求值也感觉不太对,我 加个变量,试了一下,还行
    j = tt2.value - tt1.value;
    k = tt1.value;
      for (i=0;i<=j;i++)
      {
       str += k + "<br>";k++;
      }
      

  4.   

    注意文本框里取出来的值都是字符型
    因为JS不分类型,所以在输入1 2 3 等的时候用于计算是会被直接认为是整型,而01 02 03则会被认为是字符
    如果你输入05而又想无论到哪都被认为整型计算,可强制转换为整型

    parseInt(tt1.value)
    这样就不会有问题了
    不过这样处理过的变量如果用于字符连接时又会出错,必须再转换回字符用
    toString()或String()