/*站点前台表单统一客户端验证 2014-08-28*/ var this_url = window.location.href; var regemail = /^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/; var regtelphone = /^((\d{11})|^((\d{7,8})|(\d{4}|\d{3})-(\d{7,8})|(\d{4}|\d{3})-(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1})|(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1})))$/; var regnum = /^\d+$/; var regPcode = /^\d{6}$/; var regUrl = /^(http|https):\/\/(.+?)\.(.+)/; function getValue(obj) { return jQuery.trim(jQuery(obj).val()) } function IsNum(obj, obj2) { if (!regnum.test(jQuery(obj).val())) { jQuery(obj).val(obj2) } } jQuery(document).on('keyup', '.isNum', function () { IsNum(this, 1); }); var required = function() { var goon = true; var IsRunReg = false; jQuery('.get:visible').map(function() { if (goon) { IsRunReg = false; var val = getValue(jQuery(this)); var placeholder = jQuery(this).attr('placeholder'); var errorMsg = jQuery(this).attr('data-error'); if (jQuery(this).hasClass('required')) { if (val.length == 0 || jQuery(this).val() == placeholder) { if (placeholder != '' && placeholder != undefined) { layer.msg(placeholder) } else { layer.msg('请输入必填信息!') } jQuery(this).focus(); goon = false } else if (val.length == 1 && val == "0") { var placeholder = jQuery(this).attr('placeholder'); if (placeholder != '') { layer.msg(placeholder) } else { layer.msg('请输入必填信息!') } jQuery(this).focus(); goon = false } IsRunReg = true } if (!goon) { return false } if (!IsRunReg) { if (val != undefined && val.length > 0 && val != placeholder) { IsRunReg = true } } if (jQuery(this).hasClass('tel')) { if (IsRunReg && !regtelphone.test(jQuery(this).val())) { layer.msg(errorMsg || '您输入电话的格式错误!'); jQuery(this).focus(); goon = false } } else if (jQuery(this).hasClass('card')) { if (IsRunReg && cardValid(jQuery(this).val()) != 0) { layer.msg(errorMsg || '您输入的身份证号码格式不正确!'); jQuery(this).focus(); goon = false } } else if (jQuery(this).hasClass('email')) { if (IsRunReg && !regemail.test(jQuery(this).val())) { layer.msg(errorMsg || '您输入邮箱的格式错误!'); jQuery(this).focus(); goon = false } } else if (jQuery(this).hasClass('postalcode')) { if (IsRunReg && !regPcode.test(jQuery(this).val())) { layer.msg(errorMsg || '您输入的邮政编码格式不正确!'); jQuery(this).focus(); goon = false } } else if (jQuery(this).hasClass('number')) { if (IsRunReg && !regnum.test(jQuery(this).val())) { layer.msg(errorMsg || '您输入的不是正整数!'); jQuery(this).focus(); goon = false } if (IsRunReg && jQuery(this).attr('min')) { if (Number(jQuery(this).val().length) < Number(jQuery(this).attr('min'))) { layer.msg(errorMsg || '您输入的值过小!'); jQuery(this).focus(); goon = false } } if (IsRunReg && jQuery(this).attr('max')) { if (Number(jQuery(this).val().length) > Number(jQuery(this).attr('max'))) { layer.msg(errorMsg || '您输入的值过大!'); jQuery(this).focus(); goon = false } } } else if (jQuery(this).hasClass('weburl')) { if (IsRunReg && !regUrl.test(jQuery(this).val())) { layer.msg(errorMsg || '您输入的网址格式不正确!'); jQuery(this).focus(); goon = false } } } }); return goon } jQuery(function () { jQuery(document).on('click', '#btnSubmit', function () { //}); //jQuery('#btnSubmit').click(function () { if (required()) { var attrArgs = ""; var valArgs = ""; jQuery('.get:visible').map(function (i) { if (getValue(jQuery(this)).length != 0) { attrArgs += jQuery(this).attr('name') + ","; valArgs += escape(getValue(jQuery(this))) + "," } else { attrArgs += jQuery(this).attr('name') + ","; valArgs += escape("") + "," } }); var t = jQuery(this); var thisIndex = layer.msg('数据提交中,请稍后…', { time: 0, icon: 16 }); t.attr('disabled', 'disabled'); var data = "cmd=insertForm&attrArgs=" + TDES.encrypt(attrArgs) + "&valArgs=" + TDES.encrypt(valArgs) + ""; ajaxhelpForm(data, function (msg) { layer.close(thisIndex); var obj = eval('(' + msg + ')'); if (unescape(obj.state) == 1) { thisIndex = layer.alert(unescape(obj.info), { time: 0, title: '提示信息', closeBtn: 0, btn: ['确定'], yes: function (index) { if (unescape(obj.state) == 1) { window.location = this_url } } }) } else { layer.msg(unescape(obj.info)); t.removeAttr('disabled') } }) } }); jQuery('form').submit(function () { return required() }); /*-----------------------身份证号码真伪验证----------------------------- **返回结果 **0 表示身份证号码正确 **1 表示非法身份证号 **2 表示非法地区 **3 表示非法生日 */ function cardValid(cardID) { var aCity = { 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: "国外" }; var iSum = 0; var strIDno = cardID; var idCardLength = strIDno.length; if (!/^\d{17}(\d|x)jQuery/i.test(strIDno) && !/^\d{15}jQuery/i.test(strIDno)) { return 1 } if (aCity[parseInt(strIDno.substr(0, 2))] == null) { return 2 } if (idCardLength == 15) { sBirthday = "19" + strIDno.substr(6, 2) + "-" + Number(strIDno.substr(8, 2)) + "-" + Number(strIDno.substr(10, 2)); var d = new Date(sBirthday.replace(/-/g, "/")); var dd = d.getFullYear().toString() + "-" + (d.getMonth() + 1) + "-" + d.getDate(); if (sBirthday != dd) { return 3 } strIDno = strIDno.substring(0, 6) + "19" + strIDno.substring(6, 15); strIDno = strIDno + GetVerifyBit(strIDno) } var nowDate = new Date(); var nowYear = nowDate.getFullYear(); var oldYear = nowYear - 150; var year = strIDno.substring(6, 10); if (year < oldYear || year > nowYear) { return 3 } strIDno = strIDno.replace(/xjQuery/i, "a"); sBirthday = strIDno.substr(6, 4) + "-" + Number(strIDno.substr(10, 2)) + "-" + Number(strIDno.substr(12, 2)); var d = new Date(sBirthday.replace(/-/g, "/")); if (sBirthday != (d.getFullYear() + "-" + (d.getMonth() + 1) + "-" + d.getDate())) { return 3 } for (var i = 17; i >= 0; i--) { iSum += (Math.pow(2, i) % 11) * parseInt(strIDno.charAt(17 - i), 11) } if (iSum % 11 != 1) { return 1 } var words = new Array(); words = new Array("11111119111111111", "12121219121212121", "123456789087654321"); for (var k = 0; k < words.length; k++) { if (strIDno.indexOf(words[k]) != -1) { return 1 } } return 0 } function ajaxhelpForm(data, fn) { jQuery.ajax({ "type": "post", "url": "/Ajax/Forms/ValidateHandler.ashx", "data": data, "datatype": "html", "success": function (msg) { if (fn) { fn(msg) } }, "error": function () { } }) } });