// 表单验证,适用于panel ///引用方法,直接将该gldvld.js引用到页面的底部即可,不要引用css,会自动引入该css //gldvld 是goldenValidate的缩写 var gldvld = window.NameSpace || {}; /////js获取到在身所在文件的路径,然后拼出所需css的路径,放到引用文件的头部 gldvld.getRootPath = function () { var getJsUrl = document.scripts; getJsUrl = getJsUrl[getJsUrl.length - 1].src.substring(0, getJsUrl[getJsUrl.length - 1].src.lastIndexOf("/") + 1); var cssHref = getJsUrl + "gldvld.css"; $("head").append(""); } gldvld.getRootPath(); var lblError = ""; // 表单验证,利用class名来获取对象 gldvld.lblError = function (obj) { if ($(obj).parent().children(".sp-error").length < 1) { //$(obj).parent().html().indexOf("sp-error") == -1 $(obj).addClass('sp-text-nowrap').addClass('sp-relative'); //$(obj).after(lblError); $(obj).find("input").after(lblError); } } ////失去焦点时的方法 gldvld.getblur = function (classN, regex, tip) { var className = $(classN).attr('class'); var str = $.trim($(classN).val()); var strReg = !!str.match(regex); if (str != "" && strReg == false) { $(classN).next("label").show().html(tip); $(classN).removeClass("sp-rightLogo").addClass('sp-errorTip').addClass('sp-errorLogo'); $(classN).focus(); return false; } else if (str != "" && strReg == true) { $(classN).removeClass('sp-errorTip').removeClass('sp-errorLogo').addClass("sp-rightLogo"); $(classN).next("label").hide().html(""); } if (className.indexOf('sp-required') == -1) { if (str == "") { $(classN).removeClass('sp-errorTip').removeClass('sp-errorLogo'); $(classN).next("label").hide().html(""); } } } //1.不能为空 class="require" gldvld.require = function () { $(".sp-required input").each(function () { $(this).addClass('sp-requireLogo'); gldvld.lblError('.sp-required'); $(this).blur(function () { setTimeout(function () { var newVal = $.trim($(this).val()); if (newVal == "") { $(this).next("label").show().html("必填"); $(this).addClass('sp-errorTip').removeClass('sp-requireLogo').removeClass('sp-rightLogo').addClass('sp-errorLogo'); } else { $(this).next("label").hide().html(""); $(this).removeClass('sp-errorTip').removeClass('sp-errorLogo'); } }, 5); }); }); } //2.1.验证电话号码:手机+座机 class="sp-telephone" gldvld.telephone = function () { $('.sp-telephone input').each(function () { gldvld.lblError('.sp-telephone'); $(this).blur(function (event) { var tel = $.trim($(this).val()); if (tel.substring(0, 1) == 1) { var regex = /^(0|86|17951)?(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57])[0-9]{8}$/; gldvld.getblur(this, regex, "手机号错误"); } else { var regex = /^(?:(?:0\d{2,3})-)?(?:\d{7,8})(-(?:\d{3,}))?$/; gldvld.getblur(this, regex, "座机号错误"); } }); }); } //2.2.验证手机号码 class="sp-phone" gldvld.phone = function () { $('.sp-phone input').each(function () { gldvld.lblError('.sp-phone'); $(this).blur(function (event) { var regex = /^(0|86|17951)?(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57])[0-9]{8}$/; gldvld.getblur(this, regex, "手机号错误"); }); }); } //2.3验证座机号码 class="sp-tel" gldvld.tel = function () { $('.sp-tel input').each(function () { gldvld.lblError('.sp-tel'); $(this).blur(function (event) { var regex = /^(?:(?:0\d{2,3})-)?(?:\d{7,8})(-(?:\d{3,}))?$/; gldvld.getblur(this, regex, "座机号错误"); }); }); } //3.验证身份证号 class="sp-card" gldvld.IDcard = function () { $('.sp-card input').each(function () { gldvld.lblError('.sp-card'); $(this).blur(function () { var regex = /^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$|^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/; gldvld.getblur(this, regex, "身份证错误"); }); }); } //4.验证邮箱 class="sp-email" gldvld.email = function () { $('.sp-email input').each(function () { gldvld.lblError('.sp-email'); $(this).blur(function () { var regex = /\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/; gldvld.getblur(this, regex, "邮箱错误"); }); }); } //5.邮编 class="sp-postcode" gldvld.postcode = function () { $('.sp-postcode input').each(function () { gldvld.lblError('.sp-postcode'); $(this).blur(function () { var regex = /^[0-9][0-9]{5}$/; gldvld.getblur(this, regex, "邮编错误"); }); }); } //6.传真 class="sp-fax" gldvld.fax = function () { $('.sp-fax input').each(function () { gldvld.lblError('.sp-fax'); $(this).blur(function () { var regex = /^(?:(?:0\d{2,3})-)?(?:\d{7,8})(-(?:\d{3,}))?$/; gldvld.getblur(this, regex, "传真号错误"); }); }); } //7.只允许数字 class="sp-num" gldvld.num = function () { $('.sp-num input').each(function () { gldvld.lblError('.sp-num'); $(this).blur(function () { var regex = /^[0-9]*$/; gldvld.getblur(this, regex, "输入数字"); }); }); } //7_2.数字和小数 class="sp-decimal" gldvld.decimal = function () { $('.sp-decimal input').each(function () { gldvld.lblError('.sp-decimal'); $(this).blur(function () { var regex = /^\d+(\.\d+)?$/; gldvld.getblur(this, regex, "请输入数字或小数"); }); }); } //8.网址 class="sp-url" gldvld.url = function () { $('.sp-url input').each(function () { gldvld.lblError('.sp-url'); $(this).blur(function () { var regex = /((https|http|ftp|rtsp|mms):\/\/)?(([0-9a-z_!~*'().&=+$%-]+:)?[0-9a-z_!~*'().&=+$%-]+@)?(([0-9]{1,3}\.){3}[0-9]{1,3}|([0-9a-z_!~*'()-]+\.)*([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]\.[a-z]{2,6})(:[0-9]{1,4})?((\/?)|(\/[0-9a-z_!~*'().;?:@&=+$,%#-]+)+\/?)/g; gldvld.getblur(this, regex, "网址错误"); }); }); } //9.ip地址 class="sp-ip" gldvld.ip = function () { $('.sp-ip input').each(function () { gldvld.lblError('.sp-ip'); $(this).blur(function () { var regex = /^\d+\.\d+\.\d+\.\d+$/; gldvld.getblur(this, regex, "ip地址错误"); }); }); } //10.匹配中文 class="sp-chinese" gldvld.chinese = function () { $('.sp-chinese input').each(function () { gldvld.lblError('.sp-chinese'); $(this).blur(function () { var regex = /^[\u4E00-\u9FFF]+$/; gldvld.getblur(this, regex, "请输入中文汉字"); }); }); } gldvld.require(); //验证 gldvld.phone(); //验证手机号 gldvld.telephone();//验证手机+座机 gldvld.tel();//验证座机 gldvld.IDcard();//验证身份证 gldvld.email();//验证邮箱 gldvld.postcode();//验证邮编 gldvld.fax();//验证传真 gldvld.num();//验证数字 gldvld.decimal();//验证小数 gldvld.url();//验证网址 gldvld.ip();//验证ip地址 gldvld.chinese();//验证中文汉字 //13.提交按钮点击时检测 用法如下: //$("#Save").click(function () { // if (gldvld.submitCheck("#validateTest")) { // 这里写要操作的代码后台 // } //}); gldvld.submit = function (formID) { /// 提交时检测form表单格式的合法性 var result = true; $(formID + " label.sp-error").each(function () { var getClass = $(this).prev().attr("class"); //获取当前节点的前一个节点 if (getClass.indexOf("sp-required") != -1) { //如果含有sp-required必填 //含有必填,其值为空时 if ($(this).prev().val() == "" || $(this).prev().val() == null) { if ($(this).is(":hidden")) { $(this).show().html("必填"); $(this).prev().addClass('sp-errorTip').removeClass('sp-requireLogo').addClass('sp-errorLogo'); } result = false; } if ($(this).prev().val() != "") { if ($(this).is(":visible")) { result = false; } } } //如果不是必填,但含有其他验证 时 if (getClass.indexOf("sp-required") == -1) { if ($(this).prev().val() != "") { if ($(this).is(":visible")) { result = false; } } } }); $(formID + " .sp-error:visible:eq(0)").prev().focus(); //将焦点定位到第一个sp-error所属的文本框中 return result; } //成功后清除掉 “对号”图片logo gldvld.clear = function (formID) { $(formID + " .sp-rightLogo").each(function () { $(this).removeClass("sp-rightLogo"); $(this).next("label").hide(); }); $(formID + " .sp-required").each(function () { $(this).removeClass("sp-errorTip").removeClass("sp-errorLogo").addClass("sp-requireLogo"); $(this).next("label").hide(); }); }