为什么输入:421123198802316413,提示日期和校验位错误了,还会执行onclick????   代码如下:<head runat="server">
    <title>身份证信息查询</title>
    <script language="javascript" type="text/javascript">
    function chaeck()
    {
      var cid=document.getElementById("TextBox1").value;
       if   (!(/(^\d{15}$)|(^\d{17}([0-9]|X)$)/.test(cid)))   
         {
            alert("输入的身份证号长度不对,或者号码不符合规定!\n15位号码应全为数字,18位号码末位可以为数字或X");
         }
         else 
         {
            if(cid.length==18)
            {
              var address = cid.substring(0,6); 
              //alert(address);
              var year=cid.substring(6,10);
              var month=cid.substring(10,12);
              var day=cid.substring(12,14);
              var birthday=year+"-"+month+"-"+day;
              //alert(birthday);
              var reg=/^([0-9]{4}\-(0?4|0?6|0?9|11)\-([0-2]?[0-9]|30)|[0-9]{4}\-(0?1|0?3|0?5|0?7|0?8|10|12)\-([0-2]?[0-9]|3[0-1])|(?:[0-9]{2}([02468][048]|[13579][26]))\-0?2\-[0-2]?[0-9]|(?![0-9]{2}([02468][048]|[13579][26]))[0-9]{4}\-0?2\-([01]?[0-9]|2[0-8]))$/;
              
              if(birthday.match(reg)==null)
              {
                 alert("你输入的身份证号中日期错误(第7-14位)");
              }
              
              else{
              var   Wi   =   new   Array(7,   9,   10,   5,   8,   4,   2,   1,   6,   3,   7,   9,   10,   5,   8,   4,   2);   
              var   arrCh   =   new   Array('1',   '0',   'X',   '9',   '8',   '7',   '6',   '5',   '4',   '3',   '2');
              
              var   nTemp   =   0,   i;   
             for(i   =   0;   i   <   17;   i   ++)   
                {   
                   nTemp   +=   cid.substr(i,   1)   *   Wi[i];   
                }   
            
              valnum   =   arrCh[nTemp   %   11];  //验证 检验码
               
             if   (valnum   !=   cid.substr(17,   1))   
                  {   
                     alert('第18位身份证的校验码不正确!');     
                  }  
                  } 
            }
         }
    }
    </script>
</head>
<body>
    <form id="form1" runat="server">
     <table style="width:500px;" align="center">
     <tr><td style="background-color:#336689; text-align:center"><span style="font-size:x-large; color:White; font-family:华文行楷">身份证信息查询</span></td></tr>
     <tr><td >请输入身份证号:<asp:TextBox ID="TextBox1" runat="server" MaxLength="18"></asp:TextBox>
                 &nbsp;&nbsp;&nbsp;&nbsp;
         <asp:Button ID="Button1" runat="server" Text="查看" onclientclick="return chaeck();" onclick="Button1_Click"  />
                 </td></tr>
     <tr><td>
         <asp:Label ID="Label1" runat="server" Text=""></asp:Label></td></tr>
     </table> protected void Page_Load(object sender, EventArgs e)
    {
        Label1.Text = "";
       if(!IsPostBack)
       {
           list2.Clear();
           list2.Add("湖北省-黄冈市-黄州区", "421102");
           list2.Add("湖北省-黄冈市-团风县", "421121");
           list2.Add("湖北省-黄冈市-红安县", "421122");
           list2.Add("湖北省-黄冈市-罗田县", "421123");
      }
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        string cid = TextBox1.Text.ToString();        long address1 = Convert.ToInt64(cid.Substring(0, 6));
        string address = "";
        string year = ""; string month = ""; string day = ""; string sex = "";
        short sex1;        bool kk=false;
        foreach (string str in list2.Values)
        {
            if (str == cid.Substring(0, 6))
            {
                kk = true;
            }
        }        if (kk)
        {
            for (int i = 0; i < list2.Count; i++)
            {
                string str = list2.GetByIndex(i).ToString();
                if (str == cid.Substring(0, 6))
                {
                    address = list2.GetKey(i).ToString();
                    year = cid.Substring(6, 4);
                    month = cid.Substring(10, 2);
                    day = cid.Substring(12, 2);                    short k = 2;
                    sex1 = Convert.ToInt16(Convert.ToInt16(cid.Substring(14, 3)) % k);                    if (sex1 == 0)
                    { sex = "女"; }
                    else sex = "男";
                    break;
                }
            }
        }
        else
        {
            Response.Write("<script>alert('你输入的身份证号的地址码错误!');</script>");
        }
        Label1.Text = "查询结果:<br>地址:" + address + "<br>性别:" + sex + "<br>生日:" + year + "-" + month + "-" + day;
    }