/* 通用表单验证方法 validform version 5.1 by sean during april 7, 2010 - july 31, 2012 for more information, please visit http://validform.rjboy.cn validform is available under the terms of the mit license. */ (function(d,f,b){var g=null,j=null,i=true;var e={tit:"提示信息",w:"请输入正确信息!",r:"通过信息验证!",c:"正在检测信息…",s:"请填入信息!",v:"所填信息没有经过验证,请稍后…",p:"正在提交数据…",err:"出错了!请检查提交地址或返回数据格式是否正确!",abort:"ajax操作被取消!"};d.tipmsg=e;var a=function(l,n,k){var n=d.extend({},a.defaults,n);n.datatype&&d.extend(a.util.datatype,n.datatype);var m=this;m.tipmsg={};m.settings=n;m.forms=l;m.objects=[];if(k===true){return false}l.each(function(p){var o=d(this);this.status="normal";o.data("tipmsg",m.tipmsg);o.find("[datatype]").live("blur",function(){var q=arguments[1];var t=a.util.getvalue.call(o,d(this));if(d(this).data("dataignore")==="dataignore"||n.dragonfly&&!d(this).data("cked")&&a.util.isempty.call(d(this),t)){return false}var r=true,u;g=u=d(this);r=a.util.regcheck.call(o,d(this).attr("datatype"),t,d(this));if(!r.passed){a.util.abort.call(u[0]);u.addclass("validform_error");a.util.showmsg.call(o,r.info,n.tiptype,{obj:d(this),type:r.type,sweep:n.tipsweep},"hide")}else{if(d(this).attr("ajaxurl")){var s=d(this);if(s[0].valid==="posting"){return false}s[0].valid="posting";a.util.showmsg.call(o,m.tipmsg.c||e.c,n.tiptype,{obj:s,type:1,sweep:n.tipsweep},"hide");a.util.abort.call(u[0]);u[0].ajax=d.ajax({type:"post",cache:false,url:s.attr("ajaxurl"),data:"param="+t+"&name="+d(this).attr("name"),datatype:"text",success:function(v){if(d.trim(v)=="y"){s[0].valid="true";a.util.showmsg.call(o,m.tipmsg.r||e.r,n.tiptype,{obj:s,type:2,sweep:n.tipsweep},"hide");u.removeclass("validform_error");g=null;if(q==="postform"){o.trigger("submit")}}else{s[0].valid=v;u.addclass("validform_error");a.util.showmsg.call(o,v,n.tiptype,{obj:s,type:3,sweep:n.tipsweep})}u[0].ajax=null},error:function(){s[0].valid=m.tipmsg.err||e.err;u.addclass("validform_error");u[0].ajax=null;a.util.showmsg.call(o,m.tipmsg.err||e.err,n.tiptype,{obj:s,type:3,sweep:n.tipsweep})}})}else{a.util.showmsg.call(o,r.info,n.tiptype,{obj:d(this),type:r.type,sweep:n.tipsweep},"hide");u.removeclass("validform_error");g=null}}});a.util.hasdefaulttext.call(o);a.util.recheckenhance.call(o);if(n.useplugin){a.util.useplugin.call(o,n.useplugin,n.tiptype,n.tipsweep,p)}o.find(":checkbox[datatype],:radio[datatype]").each(function(){var r=d(this);var q=r.attr("name");o.find("[name='"+q+"']").filter(":checkbox,:radio").bind("click",function(){settimeout(function(){r.trigger("blur")},0)})});n.btnsubmit&&o.find(n.btnsubmit).bind("click",function(){var q=a.util.submitform.call(o,n);q===b&&(q=true);if(q===true){o[0].submit()}});o.submit(function(){var q=a.util.submitform.call(o,n);q===b&&(q=true);return q});o.find("[type='reset']").add(o.find(n.btnreset)).bind("click",function(){a.util.resetform.call(o)})});if(n.tiptype==1||(n.tiptype==2&&n.ajaxpost)){c()}};a.defaults={tiptype:1,tipsweep:false,showallerror:false,postonce:false,ajaxpost:false};a.util={datatype:{match:/^(.+?)(\d+)-(\d+)$/,"*":/[\w\w]+/,"*6-16":/^[\w\w]{6,16}$/,n:/^\d+$/,"n6-16":/^\d{6,16}$/,s:/^[\u4e00-\u9fa5\uf900-\ufa2d\w\.\s]+$/,"s6-18":/^[\u4e00-\u9fa5\uf900-\ufa2d\w\.\s]{6,18}$/,p:/^[0-9]{6}$/,m:/^13[0-9]{9}$|15[0-9]{9}$|18[0-9]{9}$/,e:/^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/,url:/^(\w+:\/\/)?\w+(\.\w+)+.*$/},tostring:object.prototype.tostring,getvalue:function(m){var l,k=this;if(m.is(":radio")){l=k.find(":radio[name='"+m.attr("name")+"']:checked").val();l=l===b?"":l}else{if(m.is(":checkbox")){l=k.find(":checkbox[name='"+m.attr("name")+"']:checked").val();l=l===b?"":l}else{l=m.val()}}return d.trim(l)},isempty:function(k){return k===""||k===d.trim(this.attr("tip"))},recheckenhance:function(){var k=this;k.find("input[recheck]").each(function(){var m=d(this);var l=k.find("input[name='"+d(this).attr("recheck")+"']");l.bind("keyup",function(){if(l.val()==m.val()&&l.val()!=""){if(l.attr("tip")){if(l.attr("tip")==l.val()){return false}}m.trigger("blur")}}).bind("blur",function(){if(l.val()!=m.val()&&m.val()!=""){if(m.attr("tip")){if(m.attr("tip")==m.val()){return false}}m.trigger("blur")}})})},hasdefaulttext:function(){this.find("[tip]").each(function(){var l=d(this).attr("tip");var k=d(this).attr("altercss");d(this).focus(function(){if(d(this).val()==l){d(this).val("");if(k){d(this).removeclass(k)}}}).blur(function(){if(d.trim(d(this).val())===""){d(this).val(l);if(k){d(this).addclass(k)}}})})},useplugin:function(s,l,q,o){var v=this;if(s.swfupload){var p=v.find("input[plugin='swfupload']").val(""),k={custom_settings:{form:v,showmsg:function(w,n){a.util.showmsg.call(v,w,l,{obj:p,type:n,sweep:q})}}};k=d.extend(true,{},s.swfupload,k);if(typeof(swfuploadhandler)!="undefined"){swfuploadhandler.init(k,o)}}if(s.datepicker){if(s.datepicker.format){date.format=s.datepicker.format;delete s.datepicker.format}if(s.datepicker.firstdayofweek){date.firstdayofweek=s.datepicker.firstdayofweek;delete s.datepicker.firstdayofweek}var r=v.find("input[plugin='datepicker']");s.datepicker.callback&&r.bind("dateselected",function(){var n=new date(d.event._dpcache[this._dpid].getselected()[0]).asstring(date.format);s.datepicker.callback(n,this)});r.datepicker(s.datepicker)}if(s.passwordstrength){s.passwordstrength.showmsg=function(w,x,n){a.util.showmsg.call(v,x,l,{obj:w,type:n,sweep:q},"hide")};v.find("input[plugin*='passwordstrength']").passwordstrength(s.passwordstrength)}if(s.jqtransform){var m=function(n){var w=d(".jqtransformselectwrapper ul:visible");w.each(function(){var x=d(this).parents(".jqtransformselectwrapper:first").find("select").get(0);if(!(n&&x.olabel&&x.olabel.get(0)==n.get(0))){d(this).hide()}})};var t=function(n){if(d(n.target).parents(".jqtransformselectwrapper").length===0){m(d(n.target))}};var u=function(){d(document).mousedown(t)};if(s.jqtransform.selector){v.find(s.jqtransform.selector).filter('input:submit, input:reset, input[type="button"]').jqtransinputbutton();v.find(s.jqtransform.selector).filter("input:text, input:password").jqtransinputtext();v.find(s.jqtransform.selector).filter("input:checkbox").jqtranscheckbox();v.find(s.jqtransform.selector).filter("input:radio").jqtransradio();v.find(s.jqtransform.selector).filter("textarea").jqtranstextarea();if(v.find(s.jqtransform.selector).filter("select").length>0){v.find(s.jqtransform.selector).filter("select").jqtransselect();u()}}else{v.jqtransform()}v.find(".jqtransformselectwrapper").find("li a").click(function(){v.find("select").trigger("blur")})}},regcheck:function(q,v,p){var w=this,m=null,o=false,u=3;if(p.attr("ignore")==="ignore"&&a.util.isempty.call(p,v)){if(p.data("cked")){m=""}return{passed:true,type:4,info:m}}p.data("cked","cked");if(d.trim(p.attr("tip"))&&v===d.trim(p.attr("tip"))){return{passed:false,type:3,info:p.attr("nullmsg")||w.data("tipmsg").s||e.s}}if(a.util.tostring.call(a.util.datatype[q])=="[object function]"){o=a.util.datatype[q](v,p,w,a.util.datatype);if(o===true){u=2;m=w.data("tipmsg").r||e.r;if(p.attr("recheck")){var l=w.find("input[name='"+p.attr("recheck")+"']:first");if(v!=l.val()){o=false;u=3;m=p.attr("errormsg")||w.data("tipmsg").w||e.w}}}else{m=o||p.attr("errormsg")||w.data("tipmsg").w||e.w;o=false;if(v===""){return{passed:false,type:3,info:p.attr("nullmsg")||w.data("tipmsg").s||e.s}}}return{passed:o,type:u,info:m}}if(!(q in a.util.datatype)){var s=q.match(a.util.datatype.match),x;if(!s){return false}for(var k in a.util.datatype){x=k.match(a.util.datatype.match);if(!x){continue}if(s[1]===x[1]){var t=a.util.datatype[k].tostring(),n=t.match(/\/[mgi]*/g)[1].replace("/",""),r=new regexp("\\{"+x[2]+","+x[3]+"\\}","g");t=t.replace(/\/[mgi]*/g,"/").replace(r,"{"+s[2]+","+s[3]+"}").replace(/^\//,"").replace(/\/$/,"");a.util.datatype[q]=new regexp(t,n);break}}}if(a.util.tostring.call(a.util.datatype[q])=="[object regexp]"){o=a.util.datatype[q].test(v);if(o){u=2;m=w.data("tipmsg").r||e.r;if(p.attr("recheck")){var l=w.find("input[name='"+p.attr("recheck")+"']:first");if(v!=l.val()){o=false;u=3;m=p.attr("errormsg")||w.data("tipmsg").w||e.w}}}else{m=p.attr("errormsg")||w.data("tipmsg").w||e.w;if(v===""){return{passed:false,type:3,info:p.attr("nullmsg")||w.data("tipmsg").s||e.s}}}return{passed:o,type:u,info:m}}return{passed:false,type:3,info:w.data("tipmsg").w||e.w}},showmsg:function(n,l,m,k){if(n===null){return false}d.extend(m,{curform:this});if(typeof l=="function"){if(!(m.sweep&&k=="hide")){l(n,m,a.util.cssctl)}return false}if(l==1||k=="alwaysshow"){j.find(".validform_info").html(n)}if(l==1&&k!="hide"||k=="alwaysshow"){i=false;j.find(".iframe").css("height",j.outerheight());j.show();h(j,100)}if(l==2&&m.obj){m.obj.parent().next().find(".validform_checktip").html(n);a.util.cssctl(m.obj.parent().next().find(".validform_checktip"),m.type)}},cssctl:function(l,k){switch(k){case 1:l.removeclass("validform_right validform_wrong").addclass("validform_checktip validform_loading");break;case 2:l.removeclass("validform_wrong validform_loading").addclass("validform_checktip validform_right");break;case 4:l.removeclass("validform_right validform_wrong validform_loading").addclass("validform_checktip");break;default:l.removeclass("validform_right validform_loading").addclass("validform_checktip validform_wrong")}},submitform:function(m,k,o,q){var s=this;if(s[0].status==="posting"){return false}if(m.postonce&&s[0].status==="posted"){return false}var q=q===true?false:true;var r=m.beforecheck&&m.beforecheck(s);if(r===false){return false}var p=true,l;s.find("[datatype]").each(function(){if(k){return false}if(m.ignorehidden&&d(this).is(":hidden")||d(this).data("dataignore")==="dataignore"){return true}var u=a.util.getvalue.call(s,d(this)),v;g=v=d(this);l=a.util.regcheck.call(s,d(this).attr("datatype"),u,d(this));if(!l.passed){v.addclass("validform_error");a.util.showmsg.call(s,l.info,m.tiptype,{obj:d(this),type:l.type,sweep:m.tipsweep});if(!m.showallerror){v.focus();p=false;return false}p&&(p=false);return true}if(d(this).attr("ajaxurl")){if(this.valid!=="true"){var t=d(this);v.addclass("validform_error");a.util.showmsg.call(s,s.data("tipmsg").v||e.v,m.tiptype,{obj:t,type:3,sweep:m.tipsweep});if(!i||m.tiptype!=1){settimeout(function(){t.trigger("blur",["postform"])},1500)}if(!m.showallerror){p=false;return false}p&&(p=false);return true}}a.util.showmsg.call(s,l.info,m.tiptype,{obj:d(this),type:l.type,sweep:m.tipsweep},"hide");v.removeclass("validform_error");g=null});if(m.showallerror){s.find(".validform_error:first").focus()}if(p){var n=m.beforesubmit&&m.beforesubmit(s);if(n===false){return false}s[0].status="posting";if(m.ajaxpost||o==="ajaxpost"){a.util.showmsg.call(s,s.data("tipmsg").p||e.p,m.tiptype,{obj:s,type:1,sweep:m.tipsweep},"alwaysshow");s[0].ajax=d.ajax({type:"post",datatype:"json",async:q,url:s.attr("action"),data:s.serializearray(),success:function(t){if(t.status==="y"){a.util.showmsg.call(s,t.info,m.tiptype,{obj:s,type:2,sweep:m.tipsweep},"alwaysshow")}else{s[0].posting=false;a.util.showmsg.call(s,t.info,m.tiptype,{obj:s,type:3,sweep:m.tipsweep},"alwaysshow")}m.callback&&m.callback(t);s[0].status="posted";s[0].ajax=null},error:function(t){var u=t.statustext==="abort"?s.data("tipmsg").abort||e.abort:s.data("tipmsg").err||e.err;s[0].posting=false;a.util.showmsg.call(s,u,m.tiptype,{obj:s,type:3,sweep:m.tipsweep},"alwaysshow");s[0].status="normal";s[0].ajax=null}})}else{if(!m.postonce){s[0].status="normal"}return m.callback&&m.callback(s)}}return false},resetform:function(){var k=this;k.each(function(){this.reset();this.status="normal"});k.find(".validform_right").text("");k.find(".passwordstrength").children().removeclass("bgstrength");k.find(".validform_checktip").removeclass("validform_wrong validform_right validform_loading");k.find(".validform_error").removeclass("validform_error");k.find("[datatype]").removedata("cked").removedata("dataignore");k.eq(0).find("input:first").focus()},abort:function(){if(this.ajax){this.ajax.abort()}}};d.datatype=a.util.datatype;a.prototype={datatype:a.util.datatype,eq:function(l){var k=this;if(l>=k.forms.length){return null}if(!(l in k.objects)){k.objects[l]=new a(d(k.forms[l]).get(),k.settings,true)}return k.objects[l]},resetstatus:function(){var k=this;d(k.forms).each(function(){this.status="normal"});return this},setstatus:function(k){var l=this;d(l.forms).each(function(){this.status=k||"posting"})},getstatus:function(){var l=this;var k=d(l.forms)[0].status;return k},ignore:function(k){var l=this;d(l.forms).find(k).each(function(){d(this).data("dataignore","dataignore").removeclass("validform_error")})},unignore:function(k){var l=this;d(l.forms).find(k).each(function(){d(this).removedata("dataignore")})},addrule:function(n){var m=this;var n=n||[];for(var l in n){var p=d(m.forms).find(n[l].ele);for(var k in n[l]){k!=="ele"&&p.attr(k,n[l][k])}}},ajaxpost:function(k,l){var m=this;if(m.settings.tiptype==1||m.settings.tiptype==2){c()}a.util.submitform.call(d(m.forms[0]),m.settings,k,"ajaxpost",l)},submitform:function(k){var m=this;var l=a.util.submitform.call(d(m.forms[0]),m.settings,k);l===b&&(l=true);if(l===true){m.forms[0].submit()}},resetform:function(){var k=this;a.util.resetform.call(d(k.forms))},abort:function(){var k=this;d(k.forms).each(function(){a.util.abort.call(this)})}};d.fn.validform=function(k){return new a(this,k)};function h(n,m){var l=(d(window).width()-n.outerwidth())/2,k=(d(window).height()-n.outerheight())/2,k=(document.documentelement.scrolltop?document.documentelement.scrolltop:document.body.scrolltop)+(k>0?k:0);n.css({left:l}).animate({top:k},{duration:m,queue:false})}function c(){if(d("#validform_msg").length!==0){return false}j=d('
'+e.tit+'χ
').appendto("body");j.find("a.validform_close").click(function(){j.hide();i=true;if(g){g.focus().addclass("validform_error")}return false}).focus(function(){this.blur()});d(window).bind("scroll resize",function(){!i&&h(j,400)})}d.showmsg=function(k){c();a.util.showmsg.call(f,k,1,{})};d.hidemsg=function(){j.hide();i=true}})(jquery,window);