输入框校验
今天在项目中遇到了需要在前台校验的问题
<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> </td>
<td><input class="btn_search" type="button" value="查询" onclick="query()" ></td><!--onclick="query()"-->
</tr>
</tbody></table>
</div>
<tr>
<td> </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>