jQuery Tools Validator 表单验证插件工具用法详解

网页中经常需要用到表单验证功能,以往需要写大量的代码来验证表单字段,而jQuery Tools提供了一套方便的表单验证工具,熟悉之后可以节省大量的开发时间。

一、validator基本使用方法
jQuery Tools validator插件为input元素新增了几种类型:email、number、url,将自动按照电子邮件格式,整数格式和URL格式来验证input输入框,同时还支持max,min,pattern,required属性,这些都是HTML5标准的属性和类型,即使浏览器不支持HTML5,jQuery tools validator也会自动识别。
示例:定义简单验证规则




$("input[name='email']").validator();

二、validator配置参数详解
















































































属性默认值说明
effect'default'错误消息显示效果
errorClass'invalid'验证失败时给表单元素添加一个醒目的样式
errorInputEvent'keyup'当验证有错误(处于错误状态中),触发单项验证的事件名称,还可以使用change,blur 或 null
formEvent'submit'表单整体验证时机,将对所有项目进行一次验证
groupedfalse是否将多种错误合并显示.
inputEventnull正常状态下触发单项验证的事件名称,优先级低于errorInputEvent,也就是说当发生错误时,优先执行errorInputEvent而忽略本项,还可以使用change,blur 或 null
lang'en'错误信息语种
message'<div/>错误信息的外部元素
messageAttr'data-message'错误信息属性名称,如果给表单元素添加了此属性,则发生错误时显示此属性的值
messageClass'error'错误信息的CSS样式
offset[0, 0]错误信息显示位置的偏移量
position'center right'错误信息显示位置,默认在表单元素右侧,上下居中
singleErrorfalse是否每次只显示一个错误信息
speed'normal错误信息渐显速度

示例:初始化validator并传入配置参数
cript"  >
$("form.vali").validator({
messageClass:"yellow",
position:"bottom left",
errorClass:"errorClass"
});


三、定义默认错误提示
cript"  >
$.tools.validator.localize("cn", {
':email' : '请输入电子邮件地址',
':number' : '请输入整数',
'[max]' : '做多可以输入$1个字符',
'[min]' : '请至少输入$1个字符',
'[required]' : '该项为必填项目!'
});
$("#myForm").validator({lang: 'cn'});

以上代码定义了一系列语种名称为'cn'的默认错误提示信息。如果仅需要对某些单独的字段设置多语种版本,可以使用以下方法
cript"  >
$.tools.validator.localizeFn("[type=time]", {
en: 'Please supply a valid time',
cn: '请输入正确的时间格式'
});


四、自定义验证规则
cript"  >
//简单用法
$.tools.validator.fn("[type=time]", function(el, value) {
return /\d\d:\d\d/.test(value) ? true : "错误的事件格式";
});
//高级用法
$.tools.validator.fn(
"[type=range]",
"请输入介于 $1 至 $2 之间的值",
function(el, v) {
// 获取min属性和max属性的值
var min = el.attr("min"), max = el.attr("max"), value = parseFloat(v);
// 如果符合规则返回true,否则返回一个对象,可用于错误提示中替换占位符
return value >= min && value < max true min maxbr> }
);
//高级用法2
$.tools.validator.fn(
// 第一个参数用于检测是否适用本验证规则,如果匹配则返回true
function() {
return $(this).parents("form.register").length > 0;
// 第二个参数为验证函数
}, function(el, v) {
// 如果验证通过则返回true
return true;
}
);

//高级用法3

// 定义匹配函数
function myMatcher() {
return $(this).parents("form.register").length > 0;
}

// 作用对象
myMatcher.key = "register-input";

// 使用指定的匹配函数
$.tools.validator.fn(myMatcher, "请填写正确的值", function(el, v) {
// 验证通过返回true
return true;
});


五、使用服务端远程ajax验证
cript"  >
// 初始化 validator 并自定义的表单提交事件处理办法
$("#myform").validator({ position: 'center right' }).submit(function(e) {

var form = $(this);

// 客户端验证已通过的情况下再使用远程验证
if (!e.isDefaultPrevented()) {

// 使用AJAX提交表单数据,你也可以使用post或其他方式提交表单
$.getJSON(form.attr("action") + "?" + form.serialize(), function(json) {
// 远程验证通过时返回true
if (json === true) {
form.load("success.php");//具体成功后怎么处理随你
} else {
// 远程验证失败. 使用 invalidate() 显示错误信息
form.data("validator").invalidate(json);
}
});

// 阻止表单提交事件冒泡,即表单事件到此处理完毕
e.preventDefault();
}
});

远程AJAX返回错误信息的话需要使用JSON格式,如下:
cript"  >
{
"zip": "You must live in northern Finland in order to proceed",
"total": "You gave us too much money! Please check"
}


六、使用自定义效果显示/隐藏错误信息
cript"  >
// 定义名称为wall的效果
$.tools.validator.addEffect("wall",
function(errors, event) {

// 显示方法
$.each(errors, function(index, error) {

// 获取表单对象
var input = error.input;

// 获取错误信息
var errors = error.messages;

//剩下的你自己想怎么处理就在这里写代码
});

}, function(inputs) {
// 隐藏方法,定义隐藏时的特效
}
);

七、Validator的API方法调用


















































方法返回值类型说明
checkValidity()boolean立即执行表单验证
destroy()API销毁 validator 实例.
getConf()Object返回当前 validator 实例的参数配置.
getForm()jQuery返回表单对象
getInputs()jQuery返回所有的input对象
invalidate(Object)API强制显示错误信息,参数为JSON格式。主要用于从服务端接收到远程验证的错误后进行显示.
reflow()API修正错误信息的显示位置,因为错误信息是以绝对定位的方式显示的,有时候表单位置发生改变会导致错误信息显示的位置不正确,调用此函数进行修正。
reset(jQuery)API重置"验证错误",如果参数为空,则重置所有字段;如果表单里有reset按钮,则会被自动添加这个功能。

使用方法:

$('#myform').data("validator").checkValidity();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值