if (i > (Number(num) + 1))
这样写没错应该是其他地方出错了吧
把全部代码贴出来看看

解决方案 »

  1.   

    你确定你这里的num就是数字,不是别的什么字符????
      

  2.   

    是if (i > (parseInt(num) + 1))这样的
      

  3.   

    全部代码
    var i=0;
    function getCount(obj)
    {
       if(obj.checked)
       {
          i++;
       }
       else
       {
          i--;
       }
       
      var num= document.getElementById('hidcount').value;
     
      if (i >= num)
      {
       alert("這個班只能加入"+num+"個人.");
       if (i > (Number(num) + 1))
       {
       obj.checked=false
       }
      }
      

  4.   

    f (i > (parseInt(num) + 1))这样还是不行哦
      

  5.   

    建議樓主看看js基礎 >比较運算符。
    1、js中比较运算符中有<、<=、>、>=。比较运算只能在数字和字符串上才有意义2、如果两个运算数是数字,就不用说了吧3、如果两个都是字符串,那么将采用unicode编码中的数值进行比较4、其它的类型都会转换成数字或字符串后再比较5、var num= document.getElementById('hidcount').value;取道的num是字符串,这里明显是想比较数字的大小。所以应该将字符串转换成数 字。楼上说的parseInt是一种方式,还可以用num=num-0;(这里有点取巧,巧妙的用到了js运行时类型转换,即js会根据减号运算符判断是再进行算术运算,那么它会自动将num转成数字再去-0)。6、js权威指南中有详细介绍
      

  6.   


    <script language="javascript" type="text/javascript">
    var aa = 123 + "1";
    alert(parseInt(aa) + 1);
    </script>这段代码就能成功地将字符串转成整形啊.
    如果你那个不成功,应该是你代码别的地方出错,没有运行到那里.要不你试试把那个i 的定义放到getCount 这个方法里面的第一行运行看看.
      

  7.   

    (Number(num) + 1) 改成 parseInt(num)+1