内容目录
jQuery Validator的before
前置处理器用于在每次执行当前规则校验前进行前置处理,并根据前置处理的返回结果决定是否执行本次校验。
此外,你还可以在处理器中动态修改本次校验的规则。
语法
jQuery Validator 1.0 新增。
// 在校验规则对象中指定该属性
before: handler
参数
参数 | 描述 |
---|---|
handler | Function类型指定的前置处理函数。 |
如果在校验规则中指定了前置处理器before
,jQuery Validator会在执行输入预处理和校验之前调用该处理器函数。
在调用函数时,jQuery Validator会为其传入如下所示的参数:
before: function(value, context){
// value 表示当前表单输入
// context 表示本次校验的上下文对象
// this 指向当前jQuery Validator实例
// 如果返回false,则表示不进行本次校验
}
如果前置处理函数handler
返回false,则表示跳过本次校验。
示例&说明
以如下HTML表单为例:
<form action="https://codeplayer.vip/">
<div>
<label>用户类型</label>:
<select id="userType" name="userType">
<option value="">==请选择==</option>
<option value="1">普通用户</option>
<option value="2">客服</option>
</select>
</div>
<div>
<label>QQ号码</label>:
<input id="QQ" name="QQ" type="text" >
</div>
<div>
<label>年龄</label>:
<input id="age" name="age" type="text" >
</div>
<input type="submit" value="提交" />
</form>
我们可以使用before
前置处理器完成如下校验:运行代码
// 在表单提交时执行校验
$("form").v("submit", {
"#userType": "required",
"#QQ": {
// 只有客服必须输入QQ号码,其他用户类型无需校验
before: function(value, context){
return $("#userType").val() == "2";
},
format: "number",
length: "[5,10]"
},
"#age": {
// 如果是客服,必须年满18岁,其他用户类型无限制
before: function(value, context){
context.rule.range = $("#userType").val() == "2" ? "[18,]" : "[0,]";
},
format: "number",
range: "[18,]"
}
});
0 条评论
撰写评论