当前位置: 首页 > 中文手册 > jQuery Validator before 前置处理器

jQuery Validator before 前置处理器

jQuery Validator的before前置处理器用于在每次执行当前规则校验前进行前置处理,并根据前置处理的返回结果决定是否执行本次校验。

此外,你还可以在处理器中动态修改本次校验的规则。

语法

jQuery Validator 1.0 新增

// 在校验规则对象中指定该属性
before: handler

参数

参数描述
handlerFunction类型指定的前置处理函数。

如果在校验规则中指定了前置处理器before,jQuery Validator会在执行输入预处理和校验之前调用该处理器函数。

在调用函数时,jQuery Validator会为其传入如下所示的参数:

before: function(value, context){
	// value 表示当前表单输入
	// context 表示本次校验的上下文对象
	// this 指向当前jQuery Validator实例

	// 如果返回false,则表示不进行本次校验
}

如果前置处理函数handler返回false,则表示跳过本次校验。

示例&说明

以如下HTML表单为例:

<form action="http://www.365mini.com/">
	<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,]"
	}
});
4 0
我们认为: 用户的主要目的,是为了获取有用的信息,而不是来点击广告的。因此本站将竭力做好内容,并将广告和内容进行分离,确保所有广告不会影响到用户的正常阅读体验。用户仅凭个人意愿和兴趣爱好点击广告。
我们坚信:只有给用户带来价值,用户才会给我们以回报。
CodePlayer技术交流群1CodePlayer技术交流群1

帮朋友打一个硬广告:

P2P网贷系统(Java版本) 新年低价大促销,多年P2P技术积累,系统功能完善(可按需定制,可支持第三方存管、银行存管),架构稳定灵活、性能优异、二次开发快速简单。 另可提供二次开发、安装部署、售后维护、安全培训等一条龙服务。

外行看热闹,内行看门道。可以自信地认为,在系统设计上,比市面上的晓风、迪蒙、方维、绿麻雀、国融信、金和盛等P2P系统要好。
深圳地区支持自带技术人员现场考察源代码、了解主要技术架构,货比三家,再决定是否购买。

也可推荐他人购买,一旦完全成交,推荐人可获得实际售价 10% 的返现。
有意向者,详情请 点击这里 联系,工作时间立即回复。