当前位置: 首页 > 中文手册 > jQuery Validator remote 远程Ajax校验器

jQuery Validator remote 远程Ajax校验器

jQuery Validator的remote远程校验器用于通过远程AJAX请求对指定输入进行校验。

该校验器要求远程服务器端必须响应JSON对象字符串。

语法

jQuery Validator 1.0 新增

// 在校验规则对象中指定该属性
remote: options

// 例如:
remote: "http://www.365mini.com/user/checkExists" 
remote: { url: "url", data: {  } }

参数

参数描述
optionsString/Object/Function类型一个远程请求URL,或一个可用于$.ajax(options)的参数对象,或者一个返回前面两种参数的函数。

remote远程校验器将通过jQuery的$.ajax()方法执行一个远程请求,并根据返回结果判断校验是否成功。

参数:字符串(String)类型

如果options是一个字符串,则表示远程请求的URL。remote校验器会自动为该AJAX请求添加当前校验的表单元素的"name属性值=value值"作为参数。

参数:对象(Object)类型

如果简单的"请求URL + 参数"无法满足你的需求,你还可以自定义发送该AJAX请求所需的任何选项参数。例如:

remote: {
	url:"请求地址",
	data: "请求参数" // 也可以是{name: value}形式的对象

	// 校验器已内置如下3个参数,可以不用设置,也请不要随意更改
	// 尤其是async和dataType,否则将可能导致出现无法预料的行为
	//	type: "post",
	//	async: false,
	//	dataType: json
}

详细参数列表,请参见$.ajax()的参数说明部分。

参数:函数(Function)类型

如果options是一个函数,则它的返回值应该是前面两种类型,校验器将使用该返回值继续完成远程请求校验工作。

校验器在调用该函数时,会如下所示传入对应的参数:

options(value, context){
	// 函数中的 this 指向window对象

	// value 是当前表单元素输入的值(有可能已被格式化处理)
	// context 是校验的上下文对象
}

服务器端响应及后续处理

远程服务器端必须响应一个JSON对象,该对象可以通过设置以下约定属性以控制remote校验器的处理行为:

// 以下属性均是可选的
{
	status : "OK", // 当且仅当status为"OK"时,表示校验通过
	message: "该用户名已存在!", // 校验失败时的提示信息
	callback: "funcName" // 回调函数名称,不管校验成功失败,在返回结果前,均会调用该函数
}

// 如果指定了callback,校验器在调用函数时,会为该函数传入如下所示的参数:
funcName: (data, value, context){
	// 函数中的 this 指向当前校验的表单元素的jQuery对象

	// data 是服务器响应的JSON对象,你可以通过修改status属性来"扭转乾坤"
	// value 是当前表单元素输入的值(有可能已被格式化处理)
	// context 是校验的上下文对象
}

示例&说明

以如下HTML表单为例:

<form action="http://www.365mini.com/">
	<div>
		<label>用户名</label>:
		<input id="username" name="username" type="text" >
	</div>
	<div>
		<label>密码</label>:
		<input id="password" name="password" type="password" >
	</div>
	<input type="submit" value="提交" />
</form>

我们可以使用remote校验器来判断该用户名是否已存在:运行代码

// 在表单提交时执行校验
$("form").v("submit", {
	"#username": {
		text: /^[a-z]\w{5,15}$/i, // 先校验格式是否正确
		remote: "/user/check.php" // 校验器会自动附加请求参数:"username=输入值"
	},
	"#password": "password"
});
3 0
我们认为: 用户的主要目的,是为了获取有用的信息,而不是来点击广告的。因此本站将竭力做好内容,并将广告和内容进行分离,确保所有广告不会影响到用户的正常阅读体验。用户仅凭个人意愿和兴趣爱好点击广告。
我们坚信:只有给用户带来价值,用户才会给我们以回报。
CodePlayer技术交流群1CodePlayer技术交流群1

帮朋友打一个硬广告:

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

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

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