//==================================================================================================== // [插件名称] jquery formvalidator // [作者网名] 猫冬 // [邮 箱] wzmaodong@126.com // [作者博客] http://wzmaodong.cnblogs.com // [更新日期] 2008-01-24 // [版 本 号] ver3.3 // [修改记录] phpcms团队修正用于jquery 1.4 //==================================================================================================== var jquery_formvalidator_initconfig;(function($){$.formvalidator={sustaintype:function(id,setting){var elem=$("#"+id).get(0);var srctag=elem.tagname;var stype=elem.type;switch(setting.validatetype){case"initvalidator":return true;case"inputvalidator":if(srctag=="input"||srctag=="textarea"||srctag=="select"){return true}else{return false}case"comparevalidator":if(srctag=="input"||srctag=="textarea"){if(stype=="checkbox"||stype=="radio"){return false}else{return true}}return false;case"ajaxvalidator":if(stype=="text"||stype=="textarea"||stype=="file"||stype=="password"||stype=="select-one"){return true}else{return false}case"regexvalidator":if(srctag=="input"||srctag=="textarea"){if(stype=="checkbox"||stype=="radio"){return false}else{return true}}return false;case"functionvalidator":return true}},initconfig:function(controloptions){var settings={debug:false,validatorgroup:"1",alertmessage:false,validobjectids:"",forcevalid:false,onsuccess:function(){return true},onerror:function(){},submitonce:false,formid:"",autotip:false,tidymode:false,errorfocus:true,wideword:true};controloptions=controloptions||{};$.extend(settings,controloptions);if(settings.tidymode){settings.errorfocus=false};if(settings.formid!=""){$("#"+settings.formid).submit(function(){return $.formvalidator.pageisvalid("1")})};if(jquery_formvalidator_initconfig==null){jquery_formvalidator_initconfig=new array()}jquery_formvalidator_initconfig.push(settings)},appendvalid:function(id,setting){if(!$.formvalidator.sustaintype(id,setting))return-1;var srcjo=$("#"+id).get(0);if(setting.validatetype=="initvalidator"||srcjo.settings==undefined){srcjo.settings=new array()}var len=srcjo.settings.push(setting);srcjo.settings[len-1].index=len-1;return len-1},getinitconfig:function(validatorgroup){if(jquery_formvalidator_initconfig!=null){for(i=0;i=0x4e00&&val.charcodeat(i)<=0x9fa5){len+=2}else{len++}}}else{len=val.length}break;case"checkbox":case"radio":len=$("input[type='"+stype+"'][name='"+srcjo.attr("name")+"']:checked").length;break;case"select-one":len=elem.options?elem.options.selectedindex:-1;break;case"select-multiple":len=$("select[name="+elem.name+"] option:selected").length;break}return len},isempty:function(id){if($("#"+id).get(0).settings[0].empty&&$.formvalidator.getlength(id)==0){return true}else{return false}},isonevalid:function(id){return $.formvalidator.oneisvalid(id,1).isvalid},oneisvalid:function(id,index){var returnobj=new object();returnobj.id=id;returnobj.ajax=-1;returnobj.errormsg="";var elem=$("#"+id).get(0);var settings=elem.settings;var settingslen=settings.length;if(settingslen==1){settings[0].bind=false}if(!settings[0].bind){return null}for(var i=0;i-1?("&"+parm):("?"+parm));if(typeof(pc_hash)!='undefined'){ls_url=ls_url+(ls_url.indexof("?")>-1?("&pc_hash="+pc_hash):("?pc_hash="+pc_hash))}}$.ajax({mode:"abort",type:setting.type,url:ls_url,cache:setting.cache,data:setting.data,async:setting.async,datatype:setting.datatype,success:function(data){if(setting.success(data)){$.formvalidator.settipstate(elem,"oncorrect",settings[0].oncorrect);setting.isvalid=true}else{$.formvalidator.settipstate(elem,"onerror",setting.onerror);setting.isvalid=false}},complete:function(){if(setting.buttons&&setting.buttons.length>0){setting.buttons.attr({"disabled":false})};setting.complete},beforesend:function(xhr){if(setting.buttons&&setting.buttons.length>0){setting.buttons.attr({"disabled":true})};var isvalid=setting.beforesend(xhr);if(isvalid){setting.isvalid=false;$.formvalidator.settipstate(elem,"onload",settings[returnobj.ajax].onwait)}setting.lastvalid="-1";return isvalid},error:function(){$.formvalidator.settipstate(elem,"onerror",setting.onerror);setting.isvalid=false;setting.error()},processdata:setting.processdata})},regexvalid:function(returnobj){var id=returnobj.id;var setting=returnobj.setting;var srctag=$("#"+id).get(0).tagname;var elem=$("#"+id).get(0);if(elem.settings[0].empty&&elem.value==""){setting.isvalid=true}else{var regexpress=setting.regexp;if(setting.datatype=="enum"){regexpress=eval("regexenum."+regexpress)}if(regexpress==undefined||regexpress==""){setting.isvalid=false;return}setting.isvalid=(new regexp(regexpress,setting.param)).test($("#"+id).val())}},functionvalid:function(returnobj){var id=returnobj.id;var setting=returnobj.setting;var srcjo=$("#"+id);var lb_ret=setting.fun(srcjo.val(),srcjo.get(0));if(lb_ret!=undefined){if(typeof lb_ret=="string"){setting.isvalid=false;returnobj.errormsg=lb_ret}else{setting.isvalid=lb_ret}}},inputvalid:function(returnobj){var id=returnobj.id;var setting=returnobj.setting;var srcjo=$("#"+id);var elem=srcjo.get(0);var val=srcjo.val();var stype=elem.type;var len=$.formvalidator.getlength(id);var empty=setting.empty,emptyerror=false;switch(stype){case"text":case"hidden":case"password":case"textarea":case"file":if(setting.type=="size"){empty=setting.empty;if(!empty.leftempty){emptyerror=(val.replace(/^[ \s]+/,'').length!=val.length)}if(!emptyerror&&!empty.rightempty){emptyerror=(val.replace(/[ \s]+$/,'').length!=val.length)}if(emptyerror&&empty.emptyerror){returnobj.errormsg=empty.emptyerror}}case"checkbox":case"select-one":case"select-multiple":case"radio":var lb_go_on=false;if(stype=="select-one"||stype=="select-multiple"){setting.type="size"}var type=setting.type;if(type=="size"){if(!emptyerror){lb_go_on=true}if(lb_go_on){val=len}}else if(type=="date"||type=="datetime"){var isok=false;if(type=="date"){lb_go_on=isdate(val)};if(type=="datetime"){lb_go_on=isdate(val)};if(lb_go_on){val=new date(val);setting.min=new date(setting.min);setting.max=new date(setting.max)}}else{stype=(typeof setting.min);if(stype=="number"){val=(new number(val)).valueof();if(!isnan(val)){lb_go_on=true}}if(stype=="string"){lb_go_on=true}}setting.isvalid=false;if(lb_go_on){if(valsetting.max){if(valsetting.min&&setting.onerrormax){returnobj.errormsg=setting.onerrormax}}else{setting.isvalid=true}}break}},comparevalid:function(returnobj){var id=returnobj.id;var setting=returnobj.setting;var srcjo=$("#"+id);var desjo=$("#"+setting.desid);var ls_datatype=setting.datatype;setting.isvalid=false;curvalue=srcjo.val();ls_data=desjo.val();if(ls_datatype=="number"){if(!isnan(curvalue)&&!isnan(ls_data)){curvalue=parsefloat(curvalue);ls_data=parsefloat(ls_data)}else{return}}if(ls_datatype=="date"||ls_datatype=="datetime"){var isok=false;if(ls_datatype=="date"){isok=(isdate(curvalue)&&isdate(ls_data))};if(ls_datatype=="datetime"){isok=(isdatetime(curvalue)&&isdatetime(ls_data))};if(isok){curvalue=new date(curvalue);ls_data=new date(ls_data)}else{return}}switch(setting.operateor){case"=":if(curvalue==ls_data){setting.isvalid=true}break;case"!=":if(curvalue!=ls_data){setting.isvalid=true}break;case">":if(curvalue>ls_data){setting.isvalid=true}break;case">=":if(curvalue>=ls_data){setting.isvalid=true}break;case"<":if(curvalue")}if(initconfig.tidymode){jqobj.showtooltips()}}setting.tipid=tip;$.formvalidator.appendvalid(this.id,setting);var validobjectids=initconfig.validobjectids;if(validobjectids.indexof("#"+this.id+" ")==-1){initconfig.validobjectids=(validobjectids==""?"#"+this.id:validobjectids+",#"+this.id)}if(!initconfig.alertmessage){$.formvalidator.settipstate(this,"onshow",setting.onshow)}var srctag=this.tagname.tolowercase();var stype=this.type;var defaultval=setting.defaultvalue;if(defaultval){jqobj.val(defaultval)}if(srctag=="input"||srctag=="textarea"){jqobj.focus(function(){if(!initconfig.alertmessage){var tipjq=$("#"+tip);this.lastshowclass=tipjq.attr("class");this.lastshowmsg=tipjq.html();$.formvalidator.settipstate(this,"onfocus",setting.onfocus)}});jqobj.bind(setting.triggerevent,function(){var settings=this.settings;var returnobj=$.formvalidator.oneisvalid(this.id,1);if(returnobj==null){return}if(returnobj.ajax>=0){$.formvalidator.showajaxmessage(returnobj)}else{var showmsg=$.formvalidator.showmessage(returnobj);if(!returnobj.isvalid){var auto=setting.automodify&&(this.type=="text"||this.type=="textarea"||this.type=="file");if(auto&&!initconfig.alertmessage){alert(showmsg);$.formvalidator.settipstate(this,"onshow",setting.onshow)}else{if(initconfig.forcevalid||setting.forcevalid){alert(showmsg);this.focus()}}}}})}else if(srctag=="select"){jqobj.bind("focus",function(){if(!initconfig.alertmessage){$.formvalidator.settipstate(this,"onfocus",setting.onfocus)}});jqobj.bind("blur",function(){jqobj.trigger("change")});jqobj.bind("change",function(){var returnobj=$.formvalidator.oneisvalid(this.id,1);if(returnobj==null){return}if(returnobj.ajax>=0){$.formvalidator.showajaxmessage(returnobj)}else{$.formvalidator.showmessage(returnobj)}})}})};$.fn.inputvalidator=function(controloptions){var settings={isvalid:false,min:0,max:99999999999999,type:"size",onerror:"输入错误",validatetype:"inputvalidator",empty:{leftempty:true,rightempty:true,leftemptyerror:null,rightemptyerror:null},wideword:true};controloptions=controloptions||{};$.extend(true,settings,controloptions);return this.each(function(){$.formvalidator.appendvalid(this.id,settings)})};$.fn.comparevalidator=function(controloptions){var settings={isvalid:false,desid:"",operateor:"=",onerror:"输入错误",validatetype:"comparevalidator"};controloptions=controloptions||{};$.extend(true,settings,controloptions);return this.each(function(){$.formvalidator.appendvalid(this.id,settings)})};$.fn.regexvalidator=function(controloptions){var settings={isvalid:false,regexp:"",param:"i",datatype:"string",onerror:"输入的格式不正确",validatetype:"regexvalidator"};controloptions=controloptions||{};$.extend(true,settings,controloptions);return this.each(function(){$.formvalidator.appendvalid(this.id,settings)})};$.fn.functionvalidator=function(controloptions){var settings={isvalid:true,fun:function(){this.isvalid=true},validatetype:"functionvalidator",onerror:"输入错误"};controloptions=controloptions||{};$.extend(true,settings,controloptions);return this.each(function(){$.formvalidator.appendvalid(this.id,settings)})};$.fn.ajaxvalidator=function(controloptions){var settings={isvalid:false,lastvalid:"",type:"get",url:"",addidvalue:true,datatype:"html",data:"",async:true,cache:false,cached:true,getdata:'',beforesend:function(){return true},success:function(){return true},complete:function(){},processdata:false,error:function(){},buttons:null,onerror:"服务器校验没有通过",onwait:"正在等待服务器返回数据",validatetype:"ajaxvalidator"};controloptions=controloptions||{};$.extend(true,settings,controloptions);return this.each(function(){$.formvalidator.appendvalid(this.id,settings)})};$.fn.defaultpassed=function(onshow){return this.each(function(){var settings=this.settings;for(var i=1;i");$("body").append(fvtt);fvtt.before("")}return this.each(function(){jqobj=$(this);s=$("");b=$("");this.tooltip=$("").append(s).append(b).css({"filter":"alpha(opacity:95)","khtmlopacity":"0.95","mozopacity":"0.95","opacity":"0.95"});jqobj.mouseover(function(e){$("#fvtt").append(this.tooltip);$("#fv_content").html(this.tooltip);$.formvalidator.localtooltip(e)});jqobj.mouseout(function(){$("#fvtt").empty()});jqobj.mousemove(function(e){$("#fv_content").html(this.tooltip);$.formvalidator.localtooltip(e)})})}})(jquery);