一、js文件中先写入的文件 $(document).ready(function () { jQuery.validator.addMethod("isIdCardNo", function (value, element) { return this.optional(element) || isIdCardNo(value); }, "请正确输入您的身份证号码"); }); //增加身份证验证 function isIdCardNo(num) { var factorArr = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1); var parityBit = new Array("1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2"); var varArray = new Array(); var intValue; var lngProduct = 0; var intCheckDigit; var intStrLen = num.length; var idNumber = num; // initialize if ((intStrLen != 15) && (intStrLen != 18)) { return false; } // check and set value for (i = 0; i < intStrLen; i++) { varArray[i] = idNumber.charAt(i); if ((varArray[i] < '0' || varArray[i] > '9') && (i != 17)) { return false; } else if (i < 17) { varArray[i] = varArray[i] * factorArr[i]; } } if (intStrLen == 18) { //check date var date8 = idNumber.substring(6, 14); if (isDate8(date8) == false) { return false; } // calculate the sum of the products for (i = 0; i < 17; i++) { lngProduct = lngProduct + varArray[i]; } // calculate the check digit intCheckDigit = parityBit[lngProduct % 11]; // check last digit if (varArray[17] != intCheckDigit) { return false; } } else { //length is 15 //check date var date6 = idNumber.substring(6, 12); if (isDate6(date6) == false) { return false; } } return true; } function isDate6(sDate) { if (!/^[0-9]{6}$/.test(sDate)) { return false; } var year, month, day; year = sDate.substring(0, 4); month = sDate.substring(4, 6); if (year < 1700 || year > 2500) return false if (month < 1 || month > 12) return false return true } function isDate8(sDate) { if (!/^[0-9]{8}$/.test(sDate)) { return false; } var year, month, day; year = sDate.substring(0, 4); month = sDate.substring(4, 6); day = sDate.substring(6, 8); var iaMonthDays = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] if (year < 1700 || year > 2500) return false if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) iaMonthDays[1] = 29; if (month < 1 || month > 12) return false if (day < 1 || day > iaMonthDays[month - 1]) return false return true } 二、调用插件后,js添加的代码。 $(function() { $("#active").validate({ rules: { FMobileNumber: { required: true, number:true, minlength:7 } }, messages: { FMobileNumber: { required: "必须填写", number:'请输入正确的手机号, 必须为数字', minlength: jQuery.format("手机至少包含{0}个字") } }, errorPlacement: function(error, element) { error.appendTo(element.parent().next().next()); } }); });
三、html代码 <div class="form-row"> <span class="label userfloat"><b>*</b>姓 名:</span> <span class="afterfloat"> <input type="text" id="FullName" class="inputarea userCfloat loginInput required" name="FullName" value="<?= set_value('FullName') ?>"/> <span class="userRfloat">请填写您的真实姓名</span> <div class="clear"></div> </span> <div class="clear"></div> <span class="afterw"></span> <div class="clear"></div> </div> <div class="clear"></div> <div class="form-row"> <span class="label userfloat"><b>*</b>身 份 证:</span> <span class="afterfloat"> <input type="text" id="FIdNumber" class="inputarea userCfloat loginInput {required:true,isIdCardNo:true}" name="FIdNumber" value="<?= set_value('FIdNumber'); ?>" /> <span class="userRfloat">请您填写真实证件号</span> <div class="clear"></div> </span> <div class="clear"></div> <span class="afterw"></span> <div class="clear"></div> </div> <div class="clear"></div> <div class="form-row"> <span class="label userfloat"><b>*</b>性 别:</span> <select name="FSex" class="inputarea userCfloat loginInput"> <option value="男"<?php if(set_value('FSex')=='男'){ ?> selected="selected"<?php } ?>>男</option> <option value="女"<?php if(set_value('FSex')=='女'){ ?> selected="selected"<?php } ?>>女</option> </select> </div> <div class="clear"></div> <div class="form-row"> <span class="label userfloat"><b>*</b>出生日期: </span> <span class="afterfloat"> <input type="text" id="FBirthday" onfocus="WdatePicker({maxDate:'2020-10-01', dateFmt:'yyyy-MM-dd'})" class="Wdate inputarea userCfloat loginInput required" name="FBirthday" value="<?= set_value('FBirthday'); ?>" /> <span class="userRfloat" style="color:red">生日格式:如:1970-02-19</span> <div class="clear"></div> </span> <div class="clear"></div> <span class="afterw"></span> <div class="clear"></div> </div> <div class="clear"></div> <div class="form-row"> <span class="label userfloat"><b>*</b>手 机:</span> <span class="afterfloat"> <input type="text" id="FMobileNumber" class="inputarea userCfloat loginInput" name="FMobileNumber" value="<?= set_value('FMobileNumber'); ?>" /> <span class="userRfloat">密码遗忘或被盗时,可通过手机短信取回</span> <div class="clear"></div> </span> <div class="clear"></div> <span class="afterw"></span> <div class="clear"></div> </div> <div class="clear"></div> <div class="form-row"> <span class="label userfloat"><b>*</b>邮 箱:</span> <span class="afterfloat"> <input type="text" id="FEMail" class="inputarea userCfloat loginInput required email" name="FEMail" value="<?= set_value('FEMail'); ?>" /> <span class="userRfloat">密码遗忘或被盗时,可通过邮箱取回</span> <div class="clear"></div> </span> <div class="clear"></div> <span class="afterw"></span> <div class="clear"></div> </div> <div class="clear"></div> <div class="form-row"> <span class="label userfloat">QQ 号 码:</span> <input type="text" id="FQQ" class="inputarea userCfloat loginInput" name="FQQ" value="<?= set_value('FQQ'); ?>" /> <div class="clear"></div> </div>