required: true,
messages: {
required: "新密码不能为空"
}
})
if (isLength == 1) {
$("#<%=txtNewSysPass.ClientID %>").rules("add", {
minlength: Length,
maxlength: Length,
messages: {
maxlength: "最大长度" + Length + "个字符",
minlength: "最短长度" + Length + "个字符"
}
})
}
可以这样加条件。。
1 定义模板校验规则(这个可以放进自己的core.js,不用每个页面都写一次):[html] view plain copy
$.extend($.fn.validatebox.defaults.rules, {
/**
* 调用自定义的方法校验模板
* 使用方式: validType=call[fn]
* @type
*/
call: {
validator: function(value, param){
// value是被校验的控件的值
// 取出页面传入用来校验的方法
var callback = param[0]
if(callback){
// 回调
return callback(value)
}
return false
},
// 显示校验错误信息
message: '{1}'
}
})
2 自定义校验方法
以下是我的编码唯一性校验:
[html] view plain copy
/**
* 编码唯一性校验
*
* 返回true表示校验通过,返回false表示校验失败
*/
function codeValidate(code){
var result = true
// 这里做业务逻辑判断, 比如判断是否需要验证等等,我的这里是oldvalue不需要校验
// 以下是我的远程唯一校验,ajax一定要同步执行
$.ajax({
async: false,
url : 'myurl',
data : {
code : code
},
success : function(res) {
result = res
}
})
// 这里的result只有2个值:true / false
return result
}
3 页面设置调用
我的input文本框设置:
<input class="easyui-textbox" name="code" data-options="required:true" validType="call[codeValidate]" invalidMessage="编码重复,请重新输入" ></input>
4 提交之前,把这个input所在的form校验一下就行了,这样对于比较复杂的校验,只需要写一个校验的方法,然后在页面配置validType即可,是不是很省心呢