/** File Name:validateExtend.js Author:zheng.yongfeng create Version:01.00.000 Create Date:2012-08-13 modify Version: modify Date: */ $.extend( $.fn.validatebox.defaults.rules,{ //扩展远程调用,为验证过程添加其他参数,默认空值为"-1" //事例: //remoteExtend['taskCfgCtrl.action?cmd=checkNameIsExist','name','taskId'] //<input type="hidden" id="taskId" name="taskId" disabled="disabled" value="-1"></input>,必须设置为disabled,防止提交到后台 remoteExtend : { validator : function(value, param) { var data = {}; data[param[1]] = value; //当前value所对应的name var paramName = null; var paramValue = null; for(var i = 2; i < param.length; i ++){ paramName = $("#" + param[i]).attr("name"); paramValue = $("#" + param[i]).attr("value"); if(paramValue == ""){ //默认空值为"-1",防止参数传递转换成Numbe可能出现的异常 paramValue = "-1"; } data[paramName] = paramValue; } var isValidate = $.ajax({ url : param[0], //url dataType : "json", data : data, async : false, cache : false, type : "post" }).responseText; return isValidate == "true"; }, message : "" }, //ip地址验证 ipValid : { validator : function(value, param) { var result = false; var dataArray = value.split("."); if(dataArray.length == 4){ var num = 0; var index = 0; for(var i = 0; i < 4; i ++){ if(dataArray[i] != ""){ num = Number(dataArray[i]); if(num <= 255 && num >= 0){ index ++; } } } if(index == 4){ result = true; } } return result; }, message : "格式错误" }, //正则表达式验证 custRegExp : { validator : function(value, param) { var regExp = new RegExp(eval(param[0])); return regExp.test(value); }, message : "" }, //空值验证 emptyValid:{ validator : function(value, param) { return ($.trim(value).length ==0) ? false : true; }, message : "不能为空" }, //整数判断 //事例: //intValid[9],intValid[,9] 表示最小值为9 //intValid[0,9] 表示取值范围为0-9 //intValid[,9] 表示最大值为9 intValid:{ validator : function(value, param) { //先验证是否为整数 var regExp = new RegExp(/^-?\d+$/); if(!regExp.test(value)){ $.fn.validatebox.defaults.rules.intValid.message = "只能输入整数"; return false; } var isValueCorrect = true; //判断指定值是否在某一范围内 if(param != null){ switch(param.length){ case 1: //intValid[9] 表示最小值为9 isValueCorrect = (value >= param[0]); $.fn.validatebox.defaults.rules.intValid.message = "最小值为{0}"; break; case 2: if(typeof(param[0]) == "undefined"){ //intValid[,9] 表示最大值为9 isValueCorrect = (value <= param[1]); $.fn.validatebox.defaults.rules.intValid.message = "最大值为{1}"; } else if(typeof(param[1]) == "undefined"){ //intValid[9,] 表示最小值为9 isValueCorrect = (value >= param[0]); $.fn.validatebox.defaults.rules.intValid.message = "最小值为{0}"; } else{ //intValid[0,9] 表示取值范围为0-9 isValueCorrect =((value >= param[0]) && (value <= param[1])); $.fn.validatebox.defaults.rules.intValid.message = "范围为{0}到{1}"; } break; defalut: isValueCorrect = true; } } return isValueCorrect; }, message : "" } });