function len(value){ return value.length; } function isShortDate(value){ return /^[0-9]{4}\/[0-9]{2}\/[0-9]{2}$/g.test(value); } function isEmail(value){ return /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/g.test(value); } function isEmpty(value){ //alert("isEmpty"); if(value==null||value==undefined || value=="") return true; else return false; } function substring(value,index1,index2){ return value.substring(index1,index2); } function javafetch(className,methodName,paramValues,type){ //alert(paramValues); var sParams = "className="+className+"&methodName="+methodName; var sUrl = "/Frame/page/ow/RunJavaStaticMethod.jsp"; if(type){ sUrl = "/Frame/page/ow/"+type+".jsp"; } if(paramValues){ if(type){ paramValues = JSON.stringify(paramValues); //alert("paramValues="+ paramValues) } sParams += "¶mValues=" + encodeURI(encodeURI(paramValues)); } return AsControl.RunJsp(sUrl,sParams);//+"¶mValues="+encodeURI(encodeURI(paramValues.join('')))); } function ifthen(ifcondition,ifvalue,elsevalue){ if(eval(ifcondition)) return ifvalue; else return elsevalue; } jQuery.validator.prototype.showLabel = function(element,message){ if(element.getAttribute('errorInfo')){ message=element.getAttribute('errorInfo'); element.removeAttribute('errorInfo'); } var label = this.errorsFor( element ); if ( label.length ) { // refresh error/success class label.removeClass().addClass( this.settings.errorClass ); // check if we have a generated label, replace the message then label.attr("generated") && label.html(message); } else { // create label label = $("<" + this.settings.errorElement + "/>") .attr({"for": this.idOrName(element), generated: true}) .addClass(this.settings.errorClass) .html(message || ""); if ( this.settings.wrapper ) { // make sure the element is visible, even in IE // actually showing the wrapped element is handled elsewhere label = label.hide().show().wrap("<" + this.settings.wrapper + "/>").parent(); } if ( !this.labelContainer.append(label).length ) this.settings.errorPlacement ? this.settings.errorPlacement(label, $(element) ) : label.insertAfter(element); } if ( !message && this.settings.success ) { label.text(""); typeof this.settings.success == "string" ? label.addClass( this.settings.success ) : this.settings.success( label ); } this.toShow = this.toShow.add(label); }; /*jquery.validate.js功能扩展*/ jQuery.validator.addMethod("maxlength",function(value,element,params){ if(!value) value = ""; var cArr = value.match(/[^\x00-\xff]/ig); //alert([value.length, value.length+(cArr==null?0:cArr.length)]); return value.length+(cArr==null?0:cArr.length) <= params; }); jQuery.validator.addMethod("regular",function(value,element,params){ if(element.type=='radio' || element.type=='checkbox') value = getItemValue(0,0,element.name); if(value=='')return true; var exp = new RegExp(params[0]); var m = value.match(exp); if(m==null) return false; else return true; }); jQuery.validator.addMethod("minx",function(value,element,params){ if(value=="")return true; if(toNumber(value)>=params) return true; else return false; }); jQuery.validator.addMethod("maxx",function(value,element,params){ if(value=="")return true; if(toNumber(value)<=params) return true; else return false; }); //通过远程赋值 function setItemValueFromRemote(dwname,rowindex,fieldName,javaClassName,params){ var sValue = remoteFetch(dwname,rowindex,javaClassName,params); if(sValue!=null) setItemValue(dwname,rowindex,fieldName,sValue); } //远程获取数据 function remoteFetch(dwname,rowindex,javaClassName,params){ if(!isNaN(dwname))dwname = "myiframe" + dwname; var dwindex = dwname.substring(8); var sUrl = sWebRootPath + "/Frame/page/ow/RemoteFetch.jsp"; var param = "ClassName=" + javaClassName + "&rand="+Math.random(); var result = ['error','无法连接服务器']; for(var i=0;i 7 && sParamName.substring(0,7) == '$Const:' && sParamName.indexOf("=")>-1){ var iDot = sParamName.indexOf("="); sParamValue = sParamName.substring(iDot+1,sParamName.length); sParamName = sParamName.substring(0,iDot); } else sParamValue = getItemValue(dwindex,rowindex,sParamName.toUpperCase()); if(sParamValue==undefined)sParamValue = ""; param += "&"+sParamName+"=" + sParamValue.replace(/&/g, "⊙≌□"); } } $.ajax({ url: sUrl, async: false, cache: false, type :"post", dataType: "text", data: encodeURI(encodeURI(param)), success: function(response) { if(response.substring(0,8)=='success:') result = ["success",response.substring(8)]; else if(response.substring(0,6)=='error:') result = ["error",response.substring(6)]; else result = ["error",response]; } }); if(result[0]=='success') return result[1]; else{ alert('远程获取出错:'+ result[1]); return null; } } jQuery.validator.addMethod("commCompare",function(value,element,params,index){ //alert($(params[0])); if(index==undefined)index=0; if(element.type=='radio' || element.type=='checkbox') value = getItemValue(0,0,element.name); var sCompareValue = $(params[0]).val(); if(sCompareValue==undefined){ //alert(params[0].substring(1)); sCompareValue = getItemValue(0,index,params[0].substring(1)); } //alert("sCompareValue="+ sCompareValue); var sCompareRegular = params[1]; //alert("params="+params +"|value=" + value + "|sCompareValue=" + sCompareValue); //alert('sCompareValue:' + isNaN(sCompareValue)); if(isNumber(value) && isNumber(sCompareValue)){ value = toNumber(value); sCompareValue = toNumber(sCompareValue); } //alert('sCompareRegular=' + sCompareRegular); var result = false; if(sCompareRegular=='=='){ result = (value==sCompareValue); } else if(sCompareRegular=='!='){ result = (value!=sCompareValue); } else if(sCompareRegular=='>'){ result = (value>sCompareValue); } else if(sCompareRegular=='>='){ result = (value>=sCompareValue); } else if(sCompareRegular=='<'){ result = (value 7 && sParamName.substring(0,7) == '$Const:' && sParamName.indexOf("=")>-1){ var iDot = sParamName.indexOf("="); sParamValue = sParamName.substring(iDot+1,sParamName.length); sParamName = sParamName.substring(0,iDot); } else{ sParamValue = getItemValue(0,index,sParamName.toUpperCase()); if(sParamValue==undefined) sParamValue=getItemValue(0,index,sParamName); //alert(sParamValue); } if(sParamValue==undefined)sParamValue = ""; if(sParamValue.length>0)sParamValue=sParamValue.replace(/&/g, "⊙≌□"); param += "&"+sParamName+"=" + sParamValue; } } //alert(param); $.ajax({ url: sUrl, async: false, cache: false, type :"post", dataType: "text", data: encodeURI(encodeURI(param)), success: function(response) { if(response=='true'){ result = true; }else{ //alert("response="+ response); if(response!='false') element.setAttribute("errorInfo",response); result = false; } } }); return result; }); //如果是保存则验证非空,如果暂存则不验证 jQuery.validator.addMethod("required0",function(value,element,param){ //alert(value +"|" + element.type + "|" + element.name + "|" +element.outerHTML); if(SAVE_TMP==true){ return true; } /* else if(getItemValue(0,0,"TempSaveFlag")=="1"){ return true; }*/ else{ if ( !this.depend(param, element) ) return "dependency-mismatch"; switch( element.nodeName.toLowerCase() ) { case 'select': var options = $("option:selected", element); return options.length > 0 && ( element.type == "select-multiple" || ((/msie/.test(navigator.userAgent.toLowerCase())) && !(options[0].attributes['value'].specified) ? options[0].text : options[0].value).length > 0); case 'input': if ( this.checkable(element) ) return this.getLength(value, element) > 0; default: return $.trim(value).length > 0; } } }); jQuery.validator.addMethod("expressions",function(value,element,expressions,index){ if(index==undefined)index=0; //expressions=expressions.replace(new RegExp("#ROW_INDEX","g"), + index); //expressions=expressions.replace(new RegExp("\\$\{stringValue\}","g"),"'" + value + "'"); //expressions=expressions.replace(new RegExp("\\$\{numberValue\}","g"),value); //expressions = eval("("+ expressions + ")"); var errorInfos = new Array(); for(var i=0;i-1 && iDot1>iDot0) message = message.substring(0,iDot0) + getColLabel(0,message.substring(iDot0+2,iDot1)) + message.substring(iDot1+1); var expression = expressions[i].expression; if(typeof(value) == "undefined" || value == null) continue; if(expression.indexOf("ifthen(")==-1 && $.trim(value)=="") continue; expression=expression.replace(new RegExp("#ROW_INDEX","g"), + index); expression=expression.replace(new RegExp("\\$\{stringValue\}","g"),"'" + value + "'"); expression=expression.replace(new RegExp("\\$\{numberValue\}","g"),toNumber(value)); var valid = eval(expression); if(valid==false) errorInfos[errorInfos.length] = message; } } } if(errorInfos.length>0){ //alert(element.parentNode.innerHTML); element.setAttribute("errorInfo",errorInfos.join(',并且')); return false; } else return true; }); jQuery.validator.addMethod("date",function(value,element,params){ if(value=="") return true; return isDate(value,"/"); }); jQuery.validator.addMethod("date0",function(value,element,params){ if(value=="")return true; /* if(value.length!=10){ value = value.replace(/\//g,'') $(element).val(value.substring(0,4)+"/" + value.substring(4,6) + "/" + values.string(6,8)); } */ return isDate(value,"/"); }); jQuery.validator.addMethod("SpecialCharacter",function(value,element,params){ return !isSpecialCharacter(value); }); function isSpecialCharacter(value){ if(!value) return false; var ex = value.toString().match(/[!#$%^&*()\[\]{}<>]/gi); if(ex && ex.length > 0) return true; return false; } function addSpecialCharacterValidate(id2name){ return; // 关闭特殊校验请打开行首注释 if(!window._user_validator){ window._user_validator = new Array(); } if(_user_validator.length == 0){ _user_validator.push({}); }else if(!_user_validator[0]){ _user_validator[0] = {}; } if(!_user_validator[0]["rules"]) _user_validator[0]["rules"] = {}; if(!_user_validator[0]["messages"]) _user_validator[0]["messages"] = {}; for(var i = 0; i < id2name.length; i++){ if(!_user_validator[0]["rules"][id2name[i][0]]){ _user_validator[0]["rules"][id2name[i][0]] = {"SpecialCharacter":true}; }else{ _user_validator[0]["rules"][id2name[i][0]]["SpecialCharacter"] = true; } var message = id2name[i][1]+"不允许特殊字符【!#$%^&*()[]{}<>】"; if(!_user_validator[0]["messages"][id2name[i][0]]){ _user_validator[0]["messages"][id2name[i][0]] = {"SpecialCharacter":message}; }else{ _user_validator[0]["messages"][id2name[i][0]]["SpecialCharacter"] = message; } } } function errorPlaceRule(error, element) { var eid = element.attr('name'); var tlabel = undefined; if(frames['myiframe0'] && DisplayDONO==undefined) tlabel = $('#' + eid + '_label',frames['myiframe0'].document); //alert("DisplayDONO="+ DisplayDONO + "|" + (tlabel?tlabel:element)); if (element.is(':radio') || element.is(':checkbox')) { if (G_FromFormatDoc) {error.appendTo(tlabel?tlabel:element.parent());return;} error.appendTo(tlabel?tlabel:element.parent().parent()); } else { error.insertAfter(tlabel?tlabel:element); //alert(element.outerHTML); } }