因为传进去的是字符串不是数字,字符串转数字,用parseInt函数
不过看你的样子,只是要检测是数字就可以了,直接用/^\d+$/g.test(num)就成了

解决方案 »

  1.   


    <html> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 
    <title>无标题文档 </title> 
    <SCRIPT language=JavaScript> 
    <!-- 
    //--身份证号码验证-支持新的带x身份证 
    function isIdCardNo(num) 
          { 
      if (isNaN(num)) {alert("输入的不是数字!"); return false;} 
      var len = num.length, re; 
      if (len == 15) 
        re = new RegExp(/^(\d{6})()?(\d{2})(\d{2})(\d{2})(\d{3})$/); 
      else if (len == 18) 
        re = new RegExp(/^(\d{6})()?(\d{4})(\d{2})(\d{2})(\d{3})(\d)$/); 
      else {alert("输入的数字位数不对!"); return false;} 
      var a = num.match(re); 
      if (a != null) 
      { 
        if (len==15) 
        { 
          var D = new Date("19"+a[3]+"/"+a[4]+"/"+a[5]); 
          var B = D.getYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5]; 
        } 
        else 
        { 
          var D = new Date(a[3]+"/"+a[4]+"/"+a[5]); 
          var B = D.getFullYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5]; 
        } 
        if (!B) {alert("输入的身份证号 "+ a[0] +" 里出生日期不对!"); return false;} 
      } 
      return true; 
          } //--> 
    </SCRIPT> 
    </head> <body> 
    <form id="form1" name="form1" method="post" action="shenfengzheng.asp" onSubmit="return isIdCardNo(this.num.value)"> 
      <table width="100%" border="0" cellspacing="0" cellpadding="0"> 
        <tr> 
          <td> <label> 
      <input NAME="num" class="input_button" value=""> 
          <input type="submit" name="Submit" value="提交" /> 
          </label> </td> 
        </tr> 
      </table> 
    </form> 
    </body> 
    </html> 
    是你調用函數的時候傳進去的值不對。
      

  2.   

    onSubmit="return isIdCardNo(this.num.value)"
    應該是這個 onSubmit="return isIdCardNo(this.num.value)"