输入框校验

今天在项目中遇到了需要在前台校验的问题

<div class="panes">
        <div class="pane" style="display: block;">
     <table class="tab_bdcx" width="100%" border="0">
      <tbody>

      <tr>
        <td class="bt">保单号码:</td>
        <td style="text-align: left;">
          <input class="input_label" value="" type="text" id="contNoId" ><!-- onblur="checkContNo()"-->
        </td>
      </tr>
     <tr>
        <td class="bt">证件类型:</td>
        <td style="text-align: left;">
        <select style="width: 220px; font-size: 12px; height: 25px; line-height: 25px; border: 1px solid #CCC; margin-left: 15px; font-size: 14px;"             id="cardTypeId">
            <option value="">请选择</option>
            <option value="0">身份证</option>
            <option value="1">护照</option>
            <option value="2">军人证(军官证)</option>
            <option value="4">户口本</option>
            <option value="7">出生证</option>
            <option value="E">警官证</option>
            <option value="F">港.澳.台通行证</option>
        </select>
        </td>
    </tr>
    <tr>
      <td class="bt">证件号码:</td>
      <td style="text-align: left;"><input class="input_label" value="" type="text" id="cardNoId"></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td><input class="btn_search" type="button" value="查询" onclick="query()" ></td><!--onclick="query()"-->
    </tr>

    </tbody></table>

  </div>

  
<tr>
  <td>&nbsp;</td>
  <td><input class="btn_search" type="button" value="查询" onclick="query()" ></td><!--onclick="query()"-->
</tr>

</tbody></table>

</div>

<div class="pane">
  <table class="tab_bdcx" width="100%" border="0">
  <tr>
    <td class="bt">投保人:</td>
    <td style="text-align: left;"><input class="input_label" value="" type="text" id="InsuredName"></td>
  </tr>
  <tr>
    <td class="bt">被保人:</td>
    <td style="text-align: left;"><input class="input_label" value="" type="text" id="AppntName"></td>
  </tr>
  <tr>
    <td class="bt">投保日期:</td>
    <td style="text-align: left;"><input class="input_label" value="" type="text" id="PolAPPlyDate"></td>
  </tr>
  <tr>
    <td class="bt">投保单号:</td>
    <td style="text-align: left;"><input class="input_label" value="" type="text" id="ContNo"></td>
  </tr>
  <tr>
    <td class="bt">保单生效日期:</td>
    <td style="text-align: left;"><input class="input_label" value="" type="text" id="CvalIdDate"></td>
  </tr>
  </tbody></table>
</div>

<script>

//在查询的时候触发函数

  function query(){

    //首先输入的单证号码需要为数字,所以需要用正则进行数字的校验

    var num = /^\d+$/; //验证为数字;

    //获取单证号码

    var contNo = $("contNoId").val();

    //获取证件编号

    var cardTypeId = $("cardTypeId").val(); 

    //获取证件号码

    var cardNoId = $("cardNoId").val()

    //首先验证单证号码是否输入

    if(contNo == undefind|| contNo == null || contNo==""){

        alert("请输入保单号码");

        return false;

    }eles if(contNo != undefind|| contNo != null || contNo!=""){

      if(!num.test(conNIo && conNo.length>15 && conNo.length>15)){

         alert("保单号码只能为数字,且最大位数为15位");

          return false;

      }else{

          if(cardTypeId == "" && cardNoId==""){

           alert("请选择证件类型并填入证件号码");

            return false; 

          }else if(cardTypeId != "" && cardNoId==""){  

            alert("请输入证件号码");

            return false; 

          }else if(cardTypeId == "" && cardNoId!=""){

            alert("请选择证件类型");

            return  false;

          }else{

            //验证证件号码           

             if ((cardTypeId == "2") && (cardNoId.length < 5 || cardNoId.length > 20 )) {
                alert("军人证件号码位数有误");
                cardNoId = "";
                return false;
              }else if ((cardTypeId == "D") && (cardNoId.length < 5 || cardNoId.length > 20 )) {
                alert("警官证件号码位数有误");
                cardNoId = "";
                return false;
              }else if (cardTypeId == "7" && (!cardNoId.match(/^[A-Z]{1}\d{9}$/))) {
                alert("出生证号码有误");
                cardNoId = "";
                return false;
              }else if (cardTypeId == "1" && (!(cardNoId.match(/^(14|15)\d{7}$/) || cardNoId.match(/^[S|D|G|E]\d{8}$/) || cardNoId.match(/^(P\.|S\.)\d{7}$/)))) {
                alert("护照证件号码有误");
                cardNoId = "";

                return false;
              }else if (cardTypeId == "F" && (cardNoId.length < 8)) {
                alert("港澳台通行证号码位数有误");
                cardNoId = "";
                return false;
              }else if(cardTypeId == "0"){

                //验证身份证号码

                 var city={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江 ",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北 ",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏 ",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外 "};

                if(!cardNoId || !/^\d{6}(18|19|20)?\d{2}(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$/i.test(cardNoId)){

                  alert("身份证号格式错误");
                  return false;
                } else if(!city[cardNoId.substr(0,2)]){
                  alert("地址编码错误");
                  return false;
                } else{
                  //18位身份证需要验证最后一位校验位
                    if(cardNoId.length == 18){
                    cardNoId = cardNoId.split('');
                    //∑(ai×Wi)(mod 11)
                    //加权因子
                    var factor = [ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 ];
                    //校验位
                    var parity = [ 1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2 ];
                    var sum = 0;
                    var ai = 0;
                    var wi = 0;
                    for (var i = 0; i < 17; i++){
                        ai = cardNoId[i];
                        wi = factor[i];
                        sum += ai * wi;
                    }
                    var last = parity[sum % 11];
                    if(parity[sum % 11] != cardNoId[17]){
                        alert("校验位错误");
                        return false;
                     }else{
                    //alert(cardNoId);
                     cardNoId =cardNoId.join("");//因为在验证身份证的时候,将身份证号码分割成了一个数组,需要将数组合并
                    jQuery.ajax({
                      url:****.action?ContNo="+contNo+"&IDType="+cardTypeId+"&IDNo="+cardNoId,
                      method: "post",
                      dataType: "json",
                      success: function (data) {
                          if (data.Flag == "0") {
                              $(".pane").css("display", "block");
                              $("#AppntName").val(data.AppntName);
                              $("#ContNo").val(data.ProposalContNo);
                              $("#PolAPPlyDate").val(data.PolAPPlyDate);
                              $("#CvalIdDate").val(data.CvalIdDate);
                              $("#InsuredName").val(data.InsuredName);
                          } else if (data.Flag == "1"){
                              alert(data.ErrorMsg);
                          }
                      },
                      error: function (e) {
                          alert("连接服务器失败")
                      }
                    })
                  }
              }
            }else{

             jQuery.ajax({
                      url:****.action?ContNo="+contNo+"&IDType="+cardTypeId+"&IDNo="+cardNoId,
                      method: "post",
                      dataType: "json",
                      success: function (data) {
                          if (data.Flag == "0") {
                              $(".pane").css("display", "block");
                              $("#AppntName").val(data.AppntName);
                              $("#ContNo").val(data.ProposalContNo);
                              $("#PolAPPlyDate").val(data.PolAPPlyDate);
                              $("#CvalIdDate").val(data.CvalIdDate);
                              $("#InsuredName").val(data.InsuredName);
                          } else if (data.Flag == "1"){
                              alert(data.ErrorMsg);
                          }
                      },
                      error: function (e) {
                          alert("连接服务器失败")
                      }
                    })
  

            }

          }

        }

    }

  }

</script>

posted @ 2016-12-09 09:53  马小乐  阅读(414)  评论(0编辑  收藏  举报