(function($) { var themeJsReady = false; $.formValidator = { //鍏ㄥ眬閰嶇疆 initConfig : function(controlOptions) { var settings = {}; $.extend(true, settings, initConfig_setting, controlOptions || {}); //濡傛灉鏄簿绠€妯″紡锛屽彂鐢熼敊璇殑鏃跺€欙紝绗竴涓敊璇殑鎺т欢灏变笉鑾峰緱鐒︾偣 if(settings.mode == "SingleTip"){settings.errorFocus=false}; //濡傛灉濉啓浜嗚〃鍗曞拰鎸夐挳锛屽氨娉ㄥ唽楠岃瘉浜嬩欢 if(settings.formID!=""){ $("#"+settings.formID).submit(function(){ if(settings.ajaxForm!=null){ $.formValidator.ajaxForm(settings.validatorGroup,settings.ajaxForm); return false; } else{ return $.formValidator.bindSubmit(settings); } }); } validatorGroup_setting.push( settings ); //璇诲彇涓婚瀵瑰簲鐨勮剼姝 var scriptSrcArray = fv_scriptSrc.split('/'); var jsName = scriptSrcArray[scriptSrcArray.length-1]; var themedir = fv_scriptSrc.replace(jsName,''); $.ajax({ //璋㈣崳瓒呬慨鏀 娉ㄩ噴鐨勬槸鍘熷鏂囦欢 2016-01-22 async:false,type: "GET",url: themedir + "themes/"+settings.theme+"/js/theme.js",dataType: "script", error :function(){}, success:function(){themeJsReady=true;} /*async: false, type: "GET", url: themedir + "theme.js", dataType: "script", error: function() { alert("褰撳墠鐨偆鍔犺浇鍑洪敊锛岃纭鐨偆銆? + settings.theme + "銆戞槸鍚﹀瓨鍦?); }, success: function() { themeJsReady = true; }*/ }); }, //璋冪敤楠岃瘉鍑芥暟 bindSubmit : function(settings) { if (settings.ajaxCountValid > 0 && settings.ajaxPrompt != "") { alert(settings.ajaxPrompt); return false; } return $.formValidator.pageIsValid(settings.validatorGroup); }, //鍚勭鏍¢獙鏂瑰紡鏀寔鐨勬帶浠剁被鍨 sustainType : function(elem,validateType) { var srcTag = elem.tagName; var stype = elem.type; switch(validateType) { case "formValidator": return true; case "inputValidator": return (srcTag == "INPUT" || srcTag == "TEXTAREA" || srcTag == "SELECT"); case "compareValidator": return ((srcTag == "INPUT" || srcTag == "TEXTAREA") ? (stype != "checkbox" && stype != "radio") : false); case "ajaxValidator": return (stype == "text" || stype == "textarea" || stype == "file" || stype == "password" || stype == "select-one"); case "regexValidator": return ((srcTag == "INPUT" || srcTag == "TEXTAREA") ? (stype != "checkbox" && stype != "radio") : false); case "functionValidator": return true; case "passwordValidator": return stype == "password"; } }, //濡傛灉validator瀵硅薄瀵瑰簲鐨別lement瀵硅薄鐨剉alidator灞炴€ц拷鍔犺杩涜鐨勬牎楠屻€ appendValid : function(id, setting ) { //濡傛灉鏄悇绉嶆牎楠屼笉鏀寔鐨勭被鍨嬶紝灏变笉杩藉姞鍒般€傝繑鍥?1琛ㄧず娌℃湁杩藉姞鎴愬姛 var elem = $("#"+id).get(0); var validateType = setting.validateType; if(!$.formValidator.sustainType(elem,validateType)) return -1; //閲嶆柊鍒濆鍖 if (validateType=="formValidator" || elem.settings == undefined ){elem.settings = new Array();} var len = elem.settings.push( setting ); elem.settings[len - 1].index = len - 1; return len - 1; }, //鑾峰彇鏍¢獙缁勪俊鎭€ getInitConfig : function(validatorGroup) { var config=null; $.each( validatorGroup_setting, function(i, n){ if(validatorGroup_setting[i].validatorGroup==validatorGroup){ config = validatorGroup_setting[i]; return false; } }); return config; }, //璁剧疆鏄剧ず淇℃伅 setTipState : function(elem,showclass,showmsg) { while(themeJsReady){ var initConfig = $.formValidator.getInitConfig(elem.validatorGroup); var tip = $("#"+elem.settings[0].tipID); if(showmsg==null || showmsg=="") { tip.hide(); } else { if(initConfig.mode == "SingleTip") { //鏄剧ず鍜屼繚瀛樻彁绀轰俊鎭 $("#fv_content").html(showmsg); elem.Tooltip = showmsg; if(showclass!="onError"){tip.hide();} } else { var html = showclass == "onShow" ? onShowHtml : (showclass == "onFocus" ? onFocusHtml : (showclass == "onCorrect" ? onCorrectHtml : onErrorHtml)); if(html.length = 0 || showmsg == "") { tip.hide(); } else { if(elem.validatorPasswordIndex > 0 && showclass =="onCorrect"){ var setting = elem.settings[elem.validatorPasswordIndex]; var level = $.formValidator.passwordValid(elem); showmsg = "" if(level==-1 && setting.onErrorContinueChar!=""){ showmsg=setting.onErrorContinueChar; }else if(level==-2 && setting.onErrorSameChar!=""){ showmsg=setting.onErrorSameChar; }else if(level==-3 && setting.onErrorCompareSame!=""){ showmsg=setting.onErrorCompareSame; } if(showmsg!="") { $.formValidator.setTipState(elem,'onError',showmsg); return; } showmsg = passwordStrengthText[level<=0?0:level - 1]; } html = html.replace(/\$class\$/g, showclass).replace(/\$data\$/g, showmsg); tip.html(html).show(); } var stype = elem.type; if(stype == "password" || stype == "text" || stype == "file") { jqobj = $(elem); var removeCls = [];removeCls.push(onShowClass);removeCls.push(",");removeCls.push(onFocusClass);removeCls.push(",");removeCls.push(onCorrectClass);removeCls.push(",");removeCls.push(onErrorClass); removeCls = removeCls.join(''); if(onShowClass!="" && showclass == "onShow"){jqobj.removeClass(removeCls).addClass(onShowClass)}; if(onFocusClass!="" && showclass == "onFocus"){jqobj.removeClass(removeCls).addClass(onFocusClass)}; if(onCorrectClass!="" && showclass == "onCorrect"){jqobj.removeClass(removeCls).addClass(onCorrectClass)}; if(onErrorClass!="" && showclass == "onError"){jqobj.removeClass(removeCls).addClass(onErrorClass)}; } } } break; } }, //鎶婃彁绀哄眰閲嶇疆鎴愬師濮嬫彁绀?濡傛灉鏈塪efaultPassed,搴旇璁剧疆涓簅nCorrect) resetTipState : function(validatorGroup) { if(validatorGroup == undefined){validatorGroup = "1"}; var initConfig = $.formValidator.getInitConfig(validatorGroup); $.each(initConfig.validObjects,function(){ var setting = this.settings[0]; //娓呴櫎ajax璇锋眰 this.onceValided = undefined; alert(this.onceValided); $.each(this.settings,function(){ if(typeof(this.isValid) !="undefined"){ this.isValid = true; } }); var passed = setting.defaultPassed; $.formValidator.setTipState(this, passed ? "onCorrect" : "onShow", passed ? $.formValidator.getStatusText(this,setting.onCorrect) : setting.onShow ); }); }, //璁剧疆閿欒鐨勬樉绀轰俊鎭 setFailState : function(tipID,showmsg) { $.formValidator.setTipState($("#"+tipID).get(0), "onError", showmsg); }, //鏍规嵁鍗曚釜瀵硅薄,姝g‘:姝g‘鎻愮ず,閿欒:閿欒鎻愮ず showMessage : function(returnObj) { var id = returnObj.id; var elem = $("#"+id).get(0); var isValid = returnObj.isValid; var setting = returnObj.setting;//姝g‘:setting[0],閿欒:瀵瑰簲鐨剆etting[i] var showmsg = "",showclass = ""; var intiConfig = $.formValidator.getInitConfig(elem.validatorGroup); if (!isValid) { showclass = "onError"; if(setting.validateType=="ajaxValidator") { if(setting.lastValid=="") { showclass = "onLoad"; showmsg = setting.onWait; } else { showmsg = $.formValidator.getStatusText(elem,setting.onError); } } else { showmsg = (returnObj.errormsg==""? $.formValidator.getStatusText(elem,setting.onError) : returnObj.errormsg); } if(intiConfig.mode == "AlertTip") { if(elem.validValueOld!=$(elem).val()){alert(showmsg);} } else { $.formValidator.setTipState(elem,showclass,showmsg); } } else { //楠岃瘉鎴愬姛鍚?濡傛灉娌℃湁璁剧疆鎴愬姛鎻愮ず淇℃伅,鍒欑粰鍑洪粯璁ゆ彁绀?鍚﹀垯缁欏嚭鑷畾涔夋彁绀果鍏佽涓虹┖,鍊间负绌虹殑鎻愮ず showmsg = $.formValidator.isEmpty(id) ? setting.onEmpty : $.formValidator.getStatusText(elem,setting.onCorrect); $.formValidator.setTipState(elem,"onCorrect",showmsg); } return showmsg; }, showAjaxMessage : function(returnObj) { var elem = $("#"+returnObj.id).get(0); var setting = elem.settings[returnObj.ajax]; var validValueOld = elem.validValueOld; var validvalue = $(elem).val(); returnObj.setting = setting; //defaultPassed杩樻湭澶勭悊 //if(validValueOld!= validvalue || validValueOld == validvalue && elem.onceValided == undefined) //{ $.formValidator.ajaxValid(returnObj); //} //else //{ //if(setting.isValid!=undefined && !setting.isValid){ //elem.lastshowclass = "onError"; //elem.lastshowmsg = $.formValidator.getStatusText(elem,setting.onError); //} //$.formValidator.setTipState(elem,elem.lastshowclass,elem.lastshowmsg); //} }, //鑾峰彇鎸囧畾瀛楃涓茬殑闀垮害 getLength : function(id) { var srcjo = $("#"+id); var elem = srcjo.get(0); var sType = elem.type; var len = 0; switch(sType) { case "text": case "hidden": case "password": case "textarea": case "file": var val = srcjo.val(); var setting = elem.settings[0]; //濡傛灉鏈夋樉绀烘彁绀哄唴瀹圭殑锛岃蹇界暐鎺 if(elem.isInputControl && elem.value == setting.onShowText){val=""} var initConfig = $.formValidator.getInitConfig(elem.validatorGroup); if (initConfig.wideWord) { for (var i = 0; i < val.length; i++) { len = len + ((val.charCodeAt(i) >= 0x4e00 && val.charCodeAt(i) <= 0x9fa5) ? 2 : 1); } } 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; }, //缁撳悎empty杩欎釜灞炴€э紝鍒ゆ柇浠呬粎鏄惁涓虹┖鐨勬牎楠屾儏鍐点€ isEmpty : function(id) { return ($("#"+id).get(0).settings[0].empty && $.formValidator.getLength(id)==0); }, //瀵瑰璋冪敤锛氬垽鏂崟涓〃鍗曞厓绱犳槸鍚﹂獙璇侀€氳繃锛屼笉甯﹀洖璋冨嚱鏁 isOneValid : function(id) { return $.formValidator.oneIsValid(id).isValid; }, //楠岃瘉鍗曚釜鏄惁楠岃瘉閫氳繃,姝g‘杩斿洖settings[0],閿欒杩斿洖瀵瑰簲鐨剆ettings[i] oneIsValid : function (id) { var returnObj = new Object(); var elem = $("#"+id).get(0); var initConfig = $.formValidator.getInitConfig(elem.validatorGroup); returnObj.initConfig = initConfig; returnObj.id = id; returnObj.ajax = -1; returnObj.errormsg = ""; //鑷畾涔夐敊璇俊鎭 var settings = elem.settings; var settingslen = settings.length; var validateType; //鍙湁涓€涓猣ormValidator鐨勬椂鍊欎笉妫€楠 if (settingslen==1){settings[0].bind=false;} if(!settings[0].bind){return null;} $.formValidator.resetInputValue(true,initConfig,id); for ( var i = 0 ; i < settingslen ; i ++ ) { if(i==0){ //濡傛灉涓虹┖锛岀洿鎺ヨ繑鍥炴纭 if($.formValidator.isEmpty(id)){ returnObj.isValid = true; returnObj.setting = settings[0]; break; } continue; } returnObj.setting = settings[i]; validateType = settings[i].validateType; //鏍规嵁绫诲瀷瑙﹀彂鏍¢獙 switch(validateType) { case "inputValidator": $.formValidator.inputValid(returnObj); break; case "compareValidator": $.formValidator.compareValid(returnObj); break; case "regexValidator": $.formValidator.regexValid(returnObj); break; case "functionValidator": $.formValidator.functionValid(returnObj); break; case "ajaxValidator": //濡傛灉鏄痑jax鏍¢獙锛岃繖閲岀洿鎺ュ彇涓婃鐨勭粨鏋滃€ returnObj.ajax = i break; case "passwordValidator": break; } //鏍¢獙杩囦竴娆 elem.onceValided = true; if(!settings[i].isValid) { returnObj.isValid = false; returnObj.setting = settings[i]; break; }else{ returnObj.isValid = true; returnObj.setting = settings[0]; if (settings[i].validateType == "ajaxValidator"){break}; } } $.formValidator.resetInputValue(false,initConfig,id); return returnObj; }, //楠岃瘉鎵€鏈夐渶瑕侀獙璇佺殑瀵硅薄锛屽苟杩斿洖鏄惁楠岃瘉鎴愬姛锛堝鏋滄浘缁忚Е鍙戣繃ajaxValidator锛屾彁浜ょ殑鏃跺€欏氨涓嶈Е鍙戞牎楠岋紝鐩存帴璇诲彇缁撴灉锛 pageIsValid : function (validatorGroup) { if(validatorGroup == undefined){validatorGroup = "1"}; var isValid = true,returnObj,firstErrorMessage="",errorMessage; var error_tip = "^",thefirstid,name,name_list="^"; var errorlist = new Array(); //璁剧疆鎻愪氦鐘舵€併€乤jax鏄惁鍑洪敊銆侀敊璇垪琛 var initConfig = $.formValidator.getInitConfig(validatorGroup); initConfig.status = "sumbiting"; initConfig.ajaxCountSubmit = 0; //閬嶅巻鎵€鏈夎鏍¢獙鐨勬帶浠?濡傛灉瀛樺湪ajaxValidator灏卞厛鐩存帴瑙﹀彂 $.each(initConfig.validObjects,function() { if($(this).length==0){return true}; if (this.settings[0].bind && this.validatorAjaxIndex!=undefined && this.onceValided == undefined) { returnObj = $.formValidator.oneIsValid(this.id); if (returnObj.ajax == this.validatorAjaxIndex) { initConfig.status = "sumbitingWithAjax"; $.formValidator.ajaxValid(returnObj); } } }); //濡傛灉鏈夋彁浜ょ殑鏃跺€欐湁瑙﹀彂ajaxValidator锛屾墍鏈夌殑澶勭悊閮芥斁鍦╝jax閲屽鐞 if(initConfig.ajaxCountSubmit > 0){return false} //閬嶅巻鎵€鏈夎鏍¢獙鐨勬帶浠 $.each(initConfig.validObjects,function() { //鍙牎楠岀粦瀹氱殑鎺т欢 if($(this).length==0){return true}; if(this.settings[0].bind){ name = this.name; //鐩稿悓name鍙牎楠屼竴娆 if (name_list.indexOf("^"+name+"^") == -1) { onceValided = this.onceValided == undefined ? false : this.onceValided; if(name){name_list = name_list + name + "^"}; returnObj = $.formValidator.oneIsValid(this.id); if (returnObj) { //鏍¢獙澶辫触,鑾峰彇绗竴涓彂鐢熼敊璇殑淇℃伅鍜孖D if (!returnObj.isValid) { //璁板綍涓嶅惈ajaxValidator鏍¢獙鍑芥暟鐨勬牎楠岀粨鏋 isValid = false; errorMessage = returnObj.errormsg == "" ? returnObj.setting.onError : returnObj.errormsg; errorlist[errorlist.length] = errorMessage; if (thefirstid == null) {thefirstid = returnObj.id}; if(firstErrorMessage==""){firstErrorMessage=errorMessage}; } //涓轰簡瑙e喅浣跨敤鍚屼釜TIP鎻愮ず闂:鍚庨潰鐨勬垚鍔熸垨澶辫触閮戒笉瑕嗙洊鍓嶉潰鐨勫け璐 if (initConfig.mode != "AlertTip") { var tipID = this.settings[0].tipID; if (error_tip.indexOf("^" + tipID + "^") == -1) { if (!returnObj.isValid) {error_tip = error_tip + tipID + "^"}; $.formValidator.showMessage(returnObj); } } } } } }); //鎴愬姛鎴栧け璐ヨ繘琛屽洖璋冨嚱鏁扮殑澶勭悊锛屼互鍙婃垚鍔熷悗鐨勭伆鎺夋彁浜ゆ寜閽殑鍔熻兘 if(isValid) { if(!initConfig.onSuccess()){return false}; if(initConfig.submitOnce){$(":submit,:button,:reset").attr("disabled",true);} } else { initConfig.onError(firstErrorMessage, $("#" + thefirstid).get(0), errorlist); if (thefirstid && initConfig.errorFocus) {$("#" + thefirstid).focus()}; } initConfig.status="init"; if(isValid && initConfig.debug){alert("鐜板湪姝e浜庤皟璇曟ā寮?debug:true)锛屼笉鑳芥彁浜?);} return !initConfig.debug && isValid; }, //鏁翠釜琛ㄥ崟 ajaxForm : function(validatorGroup,option,formid) { if(validatorGroup == undefined){validatorGroup = "1"}; var setting = {}; $.extend(true, setting, ajaxForm_setting, option || {}); var initConfig = $.formValidator.getInitConfig(validatorGroup); if(formid==undefined){ formid = initConfig.formID; if(formid==""){alert('琛ㄥ崟ID鏈紶鍏?);return false;}; }; if(!$.formValidator.pageIsValid(validatorGroup)){return false}; var ls_url = setting.url; //var parm = $.formValidator.serialize('#'+formid); //ls_url = ls_url + (ls_url.indexOf("?") > -1 ? ("&" + parm) : ("?" + parm)); //alert(ls_url); $.ajax( { type : setting.type, url : ls_url, cache : setting.cache, data : setting.data, async : setting.async, timeout : setting.timeout, dataType : setting.dataType, beforeSend : function(jqXHR, configs){//鍐嶆湇鍔″櫒娌℃湁杩斿洖鏁版嵁涔嬪墠锛屽厛鍥炶皟鎻愪氦鎸夐挳 if(setting.buttons && setting.buttons.length > 0){setting.buttons.attr({"disabled":true})}; return setting.beforeSend(jqXHR, configs); }, success : function(data, textStatus, jqXHR){setting.success(data, textStatus, jqXHR);}, complete : function(jqXHR, textStatus){ if(setting.buttons && setting.buttons.length > 0){setting.buttons.attr({"disabled":false})}; setting.complete(jqXHR, textStatus); }, error : function(jqXHR, textStatus, errorThrown){setting.error(jqXHR, textStatus, errorThrown);} }); }, //鎶婄紪鐮乨ecodeURIComponent鍙嶈浆涔嬪悗锛屽啀escape serialize : function(objs,initConfig) { if(initConfig!=undefined){$.formValidator.resetInputValue(true,initConfig)}; var parmString = $(objs).serialize(); if(initConfig!=undefined){$.formValidator.resetInputValue(false,initConfig)}; var parmArray = parmString.split("&"); var parmStringNew=""; $.each(parmArray,function(index,data){ var li_pos = data.indexOf("="); if(li_pos >0){ var name = data.substring(0,li_pos); var value = escape(decodeURIComponent(data.substr(li_pos+1))); var parm = name+"="+value; parmStringNew = parmStringNew=="" ? parm : parmStringNew + '&' + parm; } }); return parmStringNew; }, //ajax鏍¢獙 ajaxValid : function(returnObj) { var id = returnObj.id; var srcjo = $("#"+id); var elem = srcjo.get(0); var initConfig = returnObj.initConfig; var settings = elem.settings; var setting = settings[returnObj.ajax]; var ls_url = setting.url; //鑾峰彇瑕佷紶閫掔殑鍙傛暟 var validatorGroup = elem.validatorGroup; var initConfig = $.formValidator.getInitConfig(validatorGroup); var parm = null;//$.formValidator.serialize(initConfig.ajaxObjects); //娣诲姞瑙﹀彂鐨勬帶浠跺悕銆侀殢鏈烘暟銆佷紶閫掔殑鍙傛暟 parm = "clientid=" + id + "&" +(setting.randNumberName ? setting.randNumberName+"="+((new Date().getTime())+Math.round(Math.random() * 10000)) : "") ;//+ (parm.length > 0 ? "&" + parm : ""); ls_url = ls_url + (ls_url.indexOf("?") > -1 ? ("&" + parm) : ("?" + parm)); //鍙戦€乤jax璇锋眰 $.ajax( { type : setting.type, url : ls_url, cache : setting.cache, data : setting.data, async : setting.async, timeout : setting.timeout, dataType : setting.dataType, success : function(data, textStatus, jqXHR){ var lb_ret,ls_status,ls_msg,lb_isValid = false; $.formValidator.dealAjaxRequestCount(validatorGroup,-1); //鏍规嵁涓氬姟鍒ゆ柇璁剧疆鏄剧ず淇℃伅 lb_ret = setting.success(data, textStatus, jqXHR); if((typeof lb_ret)=="string") { ls_status = "onError"; ls_msg = lb_ret; } else if(lb_ret){ lb_isValid = true; ls_status = "onCorrect"; ls_msg = settings[0].onCorrect; }else{ ls_status = "onError"; ls_msg = $.formValidator.getStatusText(elem,setting.onError); } setting.isValid = lb_isValid; $.formValidator.setTipState(elem,ls_status,ls_msg); //鎻愪氦鐨勬椂鍊欒Е鍙戜簡ajax鏍¢獙锛岀瓑ajax鏍¢獙瀹屾垚锛屾棤鏉′欢閲嶆柊鏍¢獙 if(returnObj.initConfig.status=="sumbitingWithAjax" && returnObj.initConfig.ajaxCountSubmit == 0) { if (initConfig.formID != "") { $('#' + initConfig.formID).trigger('submit'); } } }, complete : function(jqXHR, textStatus){ if(setting.buttons && setting.buttons.length > 0){setting.buttons.attr({"disabled":false})}; setting.complete(jqXHR, textStatus); }, beforeSend : function(jqXHR, configs){ //鏈帶浠跺鏋滄鍦ㄦ牎楠岋紝灏变腑鏂笂娆 if (this.lastXMLHttpRequest) {this.lastXMLHttpRequest.abort()}; this.lastXMLHttpRequest = jqXHR; //鍐嶆湇鍔″櫒娌℃湁杩斿洖鏁版嵁涔嬪墠锛屽厛鍥炶皟鎻愪氦鎸夐挳 if(setting.buttons && setting.buttons.length > 0){setting.buttons.attr({"disabled":true})}; var lb_ret = setting.beforeSend(jqXHR,configs); var isValid = false; //鏃犺鏄惁鎴愬姛閮藉綋鍋氬け璐ュ鐞 setting.isValid = false; if((typeof lb_ret)=="boolean" && lb_ret) { isValid = true; $.formValidator.setTipState(elem,"onLoad",settings[returnObj.ajax].onWait); }else { isValid = false; $.formValidator.setTipState(elem,"onError",lb_ret); } setting.lastValid = "-1"; if(isValid){$.formValidator.dealAjaxRequestCount(validatorGroup,1);} return isValid; }, error : function(jqXHR, textStatus, errorThrown){ $.formValidator.dealAjaxRequestCount(validatorGroup,-1); $.formValidator.setTipState(elem,"onError",$.formValidator.getStatusText(elem,setting.onError)); setting.isValid = false; setting.error(jqXHR, textStatus, errorThrown); }, processData : setting.processData }); }, //澶勭悊ajax鐨勮姹備釜鏁 dealAjaxRequestCount : function(validatorGroup,val) { var initConfig = $.formValidator.getInitConfig(validatorGroup); initConfig.ajaxCountValid = initConfig.ajaxCountValid + val; if (initConfig.status == "sumbitingWithAjax") { initConfig.ajaxCountSubmit = initConfig.ajaxCountSubmit + val; } }, //瀵规鍒欒〃杈惧紡杩涜鏍¢獙锛堢洰鍓嶅彧閽堝input鍜宼extarea锛 regexValid : function(returnObj) { var id = returnObj.id; var setting = returnObj.setting; var srcTag = $("#"+id).get(0).tagName; var elem = $("#"+id).get(0); var isValid; //濡傛灉鏈夎緭鍏ユ鍒欒〃杈惧紡锛屽氨杩涜琛ㄨ揪寮忔牎楠 if(elem.settings[0].empty && elem.value==""){ setting.isValid = true; } else { var regexArray = setting.regExp; setting.isValid = false; if((typeof regexArray)=="string") regexArray = [regexArray]; $.each(regexArray, function() { var r = this; if(setting.dataType=="enum"){r = eval("regexEnum."+r);} if(r==undefined || r=="") { return false; } isValid = (new RegExp(r, setting.param)).test($(elem).val()); if(setting.compareType=="||" && isValid) { setting.isValid = true; return false; } if(setting.compareType=="&&" && !isValid) { return false } }); if(!setting.isValid) setting.isValid = isValid; } }, //鍑芥暟鏍¢獙銆傝繑鍥瀟rue/false琛ㄧず鏍¢獙鏄惁鎴愬姛;杩斿洖瀛楃涓茶〃绀洪敊璇俊鎭紝鏍¢獙澶辫触;濡傛灉娌℃湁杩斿洖鍊艰〃绀哄鐞嗗嚱鏁帮紝鏍¢獙鎴愬姛 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; } }else{ setting.isValid = true; } }, //瀵筰nput鍜宻elect绫诲瀷鎺т欢杩涜鏍¢獙 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(val < setting.min || val > setting.max){ if(val < setting.min && setting.onErrorMin){ returnObj.errormsg= setting.onErrorMin; } if(val > setting.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; 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 "=": setting.isValid = (curvalue == ls_data); break; case "!=": setting.isValid = (curvalue != ls_data); break; case ">": setting.isValid = (curvalue > ls_data); break; case ">=": setting.isValid = (curvalue >= ls_data); break; case "<": setting.isValid = (curvalue < ls_data); break; case "<=": setting.isValid = (curvalue <= ls_data); break; default : setting.isValid = false; break; } }, //鑾峰彇瀵嗙爜鏍¢獙绛夌骇 passwordValid : function(elem) { var setting = elem.settings[elem.validatorPasswordIndex]; var pwd = elem.value; //鏄惁涓鸿繛缁瓧绗 function isContinuousChar(str){ var str = str.toLowerCase(); var flag = 0; for(var i=0;i=48 && c <=57){ //鏁板瓧 sum1[0] += 1; }else if (c >=97 && c <=122){ //灏忓啓瀛楁瘝 sum1[1] += 1; }else if (c >=65 && c <=90){ //澶у啓瀛楁瘝 sum1[2] += 1; }else if(specicalChars.indexOf(pwd.substr(i,1))>=0){ //鐗规畩瀛楃 sum1[3] += 1; } } //閬嶅巻json鍙橀噺鑾峰彇瀛楃涓 var returnLevel = 0; var hasFind = true; $.each(passwordStrengthRule,function(j,n){ var level = n.level; var rules = n.rule; $.each(rules,function(i,rule){ var index = 0; //渚濇缂栬瘧鎵€鏈夌殑銆佹湁閰嶇疆(璇ヤ綅缃?=1)鐨勮妭鐐 hasFind = true; $.each(getFlag(rule.flag),function(k,value){ if(value==1){ val = rule.value[index++]; var val = val == 0 ? len : (val > len ? len : val); if(sum1[k] < val){hasFind = false;return false;} } }); if(hasFind){returnLevel = level;return false;} }) if(hasFind){returnLevel = level;} }); return returnLevel; }, //瀹氫綅婕傛诞灞 localTooltip : function(e) { e = e || window.event; var mouseX = e.pageX || (e.clientX ? e.clientX + document.body.scrollLeft : 0); var mouseY = e.pageY || (e.clientY ? e.clientY + document.body.scrollTop : 0); $("#fvtt").css({"top":(mouseY+2)+"px","left":(mouseX-40)+"px"}); }, reloadAutoTip : function(validatorGroup) { if(validatorGroup == undefined) validatorGroup = "1"; var initConfig = $.formValidator.getInitConfig(validatorGroup); $.each(initConfig.validObjects,function() { if(initConfig.mode == "AutoTip") { //鑾峰彇灞傜殑ID銆佺浉瀵瑰畾浣嶆帶浠剁殑ID鍜屽潗鏍 var setting = this.settings[0]; var relativeID = "#"+setting.relativeID; var offset = $(relativeID ).offset(); var y = offset.top; var x = $(relativeID ).width() + offset.left; $("#"+setting.tipID).parent().show().css({left: x+"px", top: y+"px"}); } }); }, getStatusText : function(elem,obj) { return ($.isFunction(obj) ? obj($(elem).val()) : obj); }, resetInputValue : function(real,initConfig,id) { var showTextObjects; if(id){ showTextObjects = $("#"+id); }else{ showTextObjects = $(initConfig.showTextObjects); } showTextObjects.each(function(index,elem){ if(elem.isInputControl){ var showText = elem.settings[0].onShowText; if(real && showText==elem.value){elem.value = ""}; if(!real && showText!="" && elem.value == ""){elem.value = showText}; } }); } }; //姣忎釜鏍¢獙鎺т欢蹇呴』鍒濆鍖栫殑 $.fn.formValidator = function(cs) { cs = cs || {}; var setting = {}; //鑾峰彇璇ユ牎楠岀粍鐨勫叏灞€閰嶇疆淇℃伅 if(cs.validatorGroup == undefined){cs.validatorGroup = "1"}; //鍏堝悎骞舵暣涓厤缃?娣卞害鎷疯礉) $.extend(true,setting, formValidator_setting); var initConfig = $.formValidator.getInitConfig(cs.validatorGroup); //鏍¢獙绱㈠紩鍙凤紝鍜屾€昏褰曟暟 initConfig.validCount += 1; //濡傛灉涓虹簿绠€妯″紡锛宼ipCss瑕侀噸鏂拌缃垵濮嬪€ if(initConfig.mode == "SingleTip"){setting.tipCss = {left:10,top:1,width:22,height:22,display:"none"}}; //寮瑰嚭娑堟伅鎻愮ず妯″紡锛岃嚜鍔ㄤ慨澶嶉敊璇 if(initConfig.mode == "AlertTip"){setting.autoModify=true}; //鍏堝悎骞舵暣涓厤缃?娣卞害鎷疯礉) $.extend(true,setting, cs || {}); return this.each(function(e) { //璁板綍璇ユ帶浠剁殑鏍¢獙椤哄簭鍙峰拰鏍¢獙缁勫彿 this.validatorIndex = initConfig.validCount - 1; this.validatorGroup = cs.validatorGroup; var jqobj = $(this); //鑷姩褰㈡垚TIP var setting_temp = {}; $.extend(true,setting_temp, setting); //鍒ゆ柇鏄惁鏈塈D var id = jqobj.attr('id'); if(!id) { id = Math.ceil(Math.random()*50000000); jqobj.attr('id', id); } var tip = setting_temp.tipID ? setting_temp.tipID : id+"Tip"; if(initConfig.mode == "AutoTip" || initConfig.mode == "FixTip") { var tipDiv = $("#"+tip); //鑾峰彇灞傜殑ID銆佺浉瀵瑰畾浣嶆帶浠剁殑ID鍜屽潗鏍 if(initConfig.mode == "AutoTip" && tipDiv.length==0) { tipDiv = $("
"); var relativeID = setting_temp.relativeID ? setting_temp.relativeID : id; var offset = $("#"+relativeID ).offset(); setting_temp.tipCss.top = offset.top + setting_temp.tipCss.top; setting_temp.tipCss.left = $("#"+relativeID ).width() + offset.left + setting_temp.tipCss.left; var formValidateTip = $("
").appendTo($("body")); formValidateTip.css(setting_temp.tipCss); setting.relativeID = relativeID ; } //tipDiv.css("margin","0px").css("padding","0px").css("background","transparent"); }else if(initConfig.mode == "SingleTip"){ jqobj.showTooltips(); } //姣忎釜鎺т欢閮借淇濆瓨杩欎釜閰嶇疆淇℃伅銆佷负浜嗗彇鏁版柟渚匡紝鍐椾綑涓€浠芥帶浠舵€讳綋閰嶇疆鍒版帶浠朵笂 setting.tipID = tip; setting.pwdTipID = setting_temp.pwdTipID ? setting_temp.pwdTipID : setting.tipID; setting.fixTipID = setting_temp.fixTipID ? setting_temp.fixTipID : id+"FixTip"; $.formValidator.appendValid(id,setting); //淇濆瓨鎺т欢ID var validIndex = $.inArray(jqobj,initConfig.validObjects); if(validIndex == -1) { if (setting_temp.ajax) { var ajax = initConfig.ajaxObjects; initConfig.ajaxObjects = ajax + (ajax != "" ? ",#" : "#") + id; } initConfig.validObjects.push(this); }else{ initConfig.validObjects[validIndex] = this; } //鍒濆鍖栨樉绀轰俊鎭 if(initConfig.mode != "AlertTip"){ $.formValidator.setTipState(this,"onShow",setting.onShow); } var srcTag = this.tagName.toLowerCase(); var stype = this.type; var defaultval = setting.defaultValue; var isInputControl = stype == "password" || stype == "text" || stype == "textarea"; this.isInputControl = isInputControl; //澶勭悊榛樿鍊 if(defaultval){ jqobj.val(defaultval); } //鍥哄畾鎻愮ず鍐呭 var fixTip = $("#"+setting.fixTipID); var showFixText = setting.onShowFixText; if(fixTip.length==1 && onMouseOutFixTextHtml!="" && onMouseOnFixTextHtml!="" && showFixText != "") { jqobj.hover( function () { fixTip.html(onMouseOnFixTextHtml.replace(/\$data\$/g, showFixText)); }, function () { fixTip.html(onMouseOutFixTextHtml.replace(/\$data\$/g, showFixText)); } ); fixTip.css("padding","0px 0px 0px 0px").css("margin","0px 0px 0px 0px").html(onMouseOutFixTextHtml.replace(/\$data\$/g, setting.onShowFixText)); } //鑾峰彇杈撳叆妗嗗唴鐨勬彁绀哄唴瀹 var showText = setting.onShowText; if(srcTag == "input" || srcTag=="textarea") { if (isInputControl) { if(showText !=""){ showObjs = initConfig.showTextObjects; initConfig.showTextObjects = showObjs + (showObjs != "" ? ",#" : "#") + id; jqobj.val(showText); jqobj.css("color",setting.onShowTextColor.mouseOutColor); } } //娉ㄥ唽鑾峰緱鐒︾偣鐨勪簨浠躲€傛敼鍙樻彁绀哄璞$殑鏂囧瓧鍜屾牱寮忥紝淇濆瓨鍘熷€ jqobj.focus(function() { if (isInputControl) { var val = jqobj.val(); this.validValueOld = val; if(showText==val){ this.value = ""; jqobj.css("color",setting.onShowTextColor.mouseOnColor); } }; if(initConfig.mode != "AlertTip"){ //淇濆瓨鍘熸潵鐨勭姸鎬 var tipjq = $("#"+tip); this.lastshowclass = tipjq.attr("class"); this.lastshowmsg = tipjq.text(); $.formValidator.setTipState(this,"onFocus",setting.onFocus); }; if(this.validatorPasswordIndex > 0){$("#"+setting.pwdTipID).show();jqobj.trigger('keyup');} }); //鎸夐敭鏃跺€欒Е鍙戞牎楠 jqobj.bind("keyup",function(){ if(this.validatorPasswordIndex > 0) { try{ var returnObj = $.formValidator.oneIsValid(id); var level = $.formValidator.passwordValid(this) if(level < 0){level=0}; if(!returnObj.isValid){level = 0}; $("#"+setting.pwdTipID).show(); $("#"+setting.pwdTipID).html(passwordStrengthStatusHtml[level]); }catch(e) { alert("瀵嗙爜寮哄害鏍¢獙澶辫触,閿欒鍘熷洜:鍙橀噺passwordStrengthStatusHtml璇硶閿欒鎴栬€呬负璁剧疆)"); } } }); //娉ㄥ唽澶卞幓鐒︾偣鐨勪簨浠躲€傝繘琛屾牎楠岋紝鏀瑰彉鎻愮ず瀵硅薄鐨勬枃瀛楀拰鏍峰紡锛涘嚭閿欏氨鎻愮ず澶勭悊 jqobj.bind(setting.triggerEvent, function(){ var settings = this.settings; //鏍规嵁閰嶇疆鎴帀宸﹀彸鐨勭┖鏍 if(settings[0].leftTrim){this.value = this.replace(/^\s*/g, "");} if(settings[0].rightTrim){this.value = this.replace(/\s*$/g, "");} //鎭㈠榛樿鍊 if(isInputControl){ if(this.value == "" && showText != ""){this.value = showText} if(this.value == showText){jqobj.css("color",setting.onShowTextColor.mouseOutColor)} } //杩涜鏈夋晥鎬ф牎楠 var returnObj = $.formValidator.oneIsValid(id); if(returnObj==null){return} if(returnObj.ajax >= 0) { $.formValidator.showAjaxMessage(returnObj); } else { var showmsg = $.formValidator.showMessage(returnObj); if(!returnObj.isValid) { //鑷姩淇閿欒 var auto = setting.autoModify && isInputControl; if(auto) { $(this).val(this.validValueOld); if(initConfig.mode != "AlertTip"){$.formValidator.setTipState(this,"onShow",$.formValidator.getStatusText(this,setting.onCorrect))}; } else { if(initConfig.forceValid || setting.forceValid){ alert(showmsg);this.focus(); } } } } }); } else if (srcTag == "select") { jqobj.bind({ //鑾峰緱鐒︾偣 focus: function(){ if (initConfig.mode != "AlertTip") { $.formValidator.setTipState(this, "onFocus", setting.onFocus) }; }, //澶卞幓鐒︾偣 blur: function(){ if(this.validValueOld==undefined || this.validValueOld==jqobj.val()){$(this).trigger("change")} }, //閫夋嫨椤圭洰鍚庤Е鍙 change: function(){ var returnObj = $.formValidator.oneIsValid(id); if(returnObj==null){return;} if ( returnObj.ajax >= 0){ $.formValidator.showAjaxMessage(returnObj); }else{ $.formValidator.showMessage(returnObj); } } }); } }); }; $.fn.inputValidator = function(controlOptions) { var settings = {}; $.extend(true, settings, inputValidator_setting, controlOptions || {}); return this.each(function(){ $.formValidator.appendValid(this.id,settings); }); }; $.fn.compareValidator = function(controlOptions) { var settings = {}; $.extend(true, settings, compareValidator_setting, controlOptions || {}); return this.each(function(){ $.formValidator.appendValid(this.id,settings); }); }; $.fn.regexValidator = function(controlOptions) { var settings = {}; $.extend(true, settings, regexValidator_setting, controlOptions || {}); return this.each(function(){ $.formValidator.appendValid(this.id,settings); }); }; $.fn.functionValidator = function(controlOptions) { var settings = {}; $.extend(true, settings, functionValidator_setting, controlOptions || {}); return this.each(function(){ $.formValidator.appendValid(this.id,settings); }); }; $.fn.ajaxValidator = function(controlOptions) { var settings = {}; $.extend(true, settings, ajaxValidator_setting, controlOptions || {}); return this.each(function() { var initConfig = $.formValidator.getInitConfig(this.validatorGroup); var ajax = initConfig.ajaxObjects; if((ajax+",").indexOf("#"+this.id+",") == -1) { initConfig.ajaxObjects = ajax + (ajax != "" ? ",#" : "#") + this.id; } this.validatorAjaxIndex = $.formValidator.appendValid(this.id,settings); }); }; $.fn.passwordValidator = function(controlOptions) { //榛樿閰嶇疆 var settings = {}; $.extend(true, settings, passwordValidator_setting, controlOptions || {}); return this.each(function() { this.validatorPasswordIndex = $.formValidator.appendValid(this.id,settings); }); }; //鎸囧畾鎺т欢鏄剧ず閫氳繃鎴栦笉閫氳繃鏍峰紡 $.fn.defaultPassed = function(onShow) { return this.each(function() { var settings = this.settings; settings[0].defaultPassed = true; this.onceValided = true; for ( var i = 1 ; i < settings.length ; i ++ ) { settings[i].isValid = true; if(!$.formValidator.getInitConfig(settings[0].validatorGroup).mode == "AlertTip"){ var ls_style = onShow ? "onShow" : "onCorrect"; $.formValidator.setTipState(this,ls_style,settings[0].onCorrect); } } }); }; //鎸囧畾鎺т欢涓嶅弬鍔犳牎楠 $.fn.unFormValidator = function(unbind) { return this.each(function() { if(this.settings) { this.settings[0].bind = !unbind; if(unbind){ $("#"+this.settings[0].tipID).hide(); }else{ $("#"+this.settings[0].tipID).show(); } } }); }; //鏄剧ず婕傛诞鏄剧ず灞 $.fn.showTooltips = function() { if($("body [id=fvtt]").length==0){ fvtt = $("
"); $("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.bind({ mouseover : function(e){ $("#fvtt").empty().append(this.tooltip).show(); $("#fv_content").html(this.Tooltip); $.formValidator.localTooltip(e); }, mouseout : function(){ $("#fvtt").hide(); }, mousemove: function(e){ $.formValidator.localTooltip(e); } }); }); } })(jQuery); var initConfig_setting = { theme:"Default", validatorGroup : "1", //鍒嗙粍鍙 formID:"", //琛ㄥ崟ID submitOnce:false, //椤甸潰鏄惁鎻愪氦涓€娆★紝涓嶄細鍋滅暀 ajaxForm : null, //濡傛灉涓嶄负null锛岃〃绀烘暣涓〃鍗昦jax鎻愪氦 mode : "FixTip", //鏄剧ず妯″紡 errorFocus:true, //绗竴涓敊璇殑鎺т欢鑾峰緱鐒︾偣 wideWord:true, //涓€涓眽瀛楀綋鍋?涓暱 forceValid:false, //鎺т欢杈撳叆姝g‘涔嬪悗锛屾墠鍏佽澶卞幓鐒 debug:false, //璋冭瘯妯″紡鐐 inIframe:false, onSuccess: function() {return true;}, //鎻愪氦鎴愬姛鍚庣殑鍥炶皟鍑芥暟 onError: $.noop, //鎻愪氦澶辫触鐨勫洖璋冨嚱鏁板害 status:"", //鎻愪氦鐨勭姸鎬侊細submited銆乻umbiting銆乻umbitingWithAjax ajaxPrompt : "褰撳墠鏈夋暟鎹鍦ㄨ繘琛屾湇鍔″櫒绔牎楠岋紝璇风◢鍊?, //鎺т欢澶卞幓鐒︾偣鍚庯紝瑙﹀彂ajax鏍¢獙锛屾病鏈夎繑鍥炵粨鏋滃墠鐨勯敊璇彁绀 validCount:0, //鍚玜jaxValidator鐨勬帶浠朵釜鏁 ajaxCountSubmit:0, //鎻愪氦鐨勬椂鍊欒Е鍙戠殑ajax楠岃瘉涓暟 ajaxCountValid:0, //澶卞幓鐒︾偣鏃跺€欒Е鍙戠殑ajax楠岃瘉涓暟 validObjects:[], //鍙傚姞鏍¢獙鐨勬帶浠堕泦鍚 ajaxObjects:"", //浼犲埌鏈嶅姟鍣ㄧ殑鎺т欢鍒楄〃 showTextObjects:"", validateType : "initConfig" }; var formValidator_setting = { validatorGroup : "1", onShowText : "", onShowTextColor:{}, onShowFixText:"", onShow :"", onFocus: "", onCorrect: "", onEmpty: "", empty :false, autoModify : false, defaultValue : null, bind : true, ajax : false, validateType : "formValidator", tipCss : { left:10, top:-4, height:20, width:280 }, triggerEvent:"blur", forceValid : false, tipID : null, pwdTipID : null, fixTipID : null, relativeID : null, index : 0, leftTrim : false, rightTrim : false }; var inputValidator_setting = { isValid : false, type : "size", min : 0, max : 99999, onError:"杈撳叆閿欒", validateType:"inputValidator", empty:{leftEmpty:true,rightEmpty:true,leftEmptyError:null,rightEmptyError:null} }; var compareValidator_setting = { isValid : false, desID : "", operateor :"=", onError:"杈撳叆閿欒", validateType:"compareValidator" }; var regexValidator_setting = { isValid : false, regExp : "", param : "i", dataType : "string", compareType : "||", onError:"杈撳叆鐨勬牸寮忎笉姝g‘", validateType:"regexValidator" }; var ajaxForm_setting = { type : "GET", url : window.location.href, dataType : "html", timeout : 100000, data : null, async : true, cache : false, buttons : null, beforeSend : function(){return true;}, success : function(){return true;}, complete : $.noop, processData : true, error : $.noop }; var ajaxValidator_setting = { isValid : false, lastValid : "", oneceValid : false, randNumberName : "rand", onError:"鏈嶅姟鍣ㄦ牎楠屾病鏈夐€氳繃", onWait:"姝e湪绛夊緟鏈嶅姟鍣ㄨ繑鍥炴暟鎹?, validateType:"ajaxValidator" }; $.extend(true,ajaxValidator_setting,ajaxForm_setting); var functionValidator_setting = { isValid : true, fun : function(){this.isValid = true;}, validateType:"functionValidator", onError:"杈撳叆閿欒" }; var passwordValidator_setting = { isValid : true, compareID : "", validateType:"passwordValidator", onErrorContinueChar:"瀵嗙爜瀛楃涓鸿繛缁瓧绗︿笉琚厑璁?, onErrorSameChar:"瀵嗙爜瀛楃閮界浉鍚屼笉琚厑璁?, onErrorCompareSame:"瀵嗙爜浜庣敤鎴峰悕鐩稿悓涓嶈鍏佽" }; var validatorGroup_setting = []; var fv_scriptSrc = document.getElementsByTagName('script')[document.getElementsByTagName('script').length - 1].src;