jquery 的rules中能不能添加if判断

JavaScript010

jquery 的rules中能不能添加if判断,第1张

$("#<%=txtNewSysPass.ClientID %>").rules("add", {

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即可,是不是很省心呢