$.fn (插件方法)
.validator()
.validator( options )
描述:根据参数初始化验证,验证 jQuery 选中的表单
参数:{Object} options - 可选,参考配置选项
示例:
$('#form1').validator({
timely: 2,
stopOnError: true,
fields: {
email: "required;email",
password: "required;length(6~16)",
mobile: "required;mobile"
},
valid: function(form) {
$.post("path/to/server", $(form).serialize())
.done(function(){
// some code
});
}
});
.validator( validCallback )
描述:初始化验证,验证 jQuery 选中的表单,验证通过后执行回调
参数:{Function} validCallback - 表单验证通过的回调
示例:
$('#form1').validator(validCallback);
// 等同于
$('#form1').validator({
valid: validCallback
});
.validator( instanceMethod, arg1, arg2... )
描述:通过.validator()
方法调用实例方法
参数:{String} instanceMethod - 实例方法名称
参数:{Arguments} argn - 调用实例方法时的参数
示例:
// 清空表单验证消息
$('#form1').validator("cleanUp");
// 销毁表单验证
$('#form1').validator("destroy");
.isValid( callback )
描述:判断某个区域或者某个字段是否验证通过,如果字段中有异步 ajax 验证,需要通过 callback 获取验证结果
参数: {Function} callback - 回调函数
示例:
// 使用回调函数获取验证结果
$('#mobile').isValid(function(v){
if (v) {
// do something
}
});
// v0.10.5+ 还支持下面这种写法,即回调不带参数,就是验证通过的回调
$('#mobile').isValid(function(){
// do something
});
// 如果验证的字段中没有 ajax 异步验证,直接获取结果也是可以的
if ( $('#mobile').isValid() ) {
// do something
}
$.validator (静态方法)
$.validator(selector, options)
描述:初始化表单。如果 selector
选择的元素存在于 DOM,其等同于 $(selector).validator(options)
这种写法。如果不存在,nice-validator 会 预初始化 该选择器选中的表单,等到该表单存在时就可以直接被验证。
参数:{jqSelector|Element} selector - jQuery 选择器(支持预初始化),或者 DOM Element
参数:{Object} options - 参考配置选项
示例:
// 即使 "#form1" 这个表单被动态加载,也可以验证
$.validator("#form1", {
timely: 2,
stopOnError: true,
fields: {
email: "required;email",
password: "required;length(6~16)",
mobile: "required;mobile"
}
});
.config(options)
描述:配置全局选项
参数:{Object} options - 参考配置选项
示例:
$.validator.config({
timely: 2
});
.setTheme(name, options)
描述:配置全局主题
参数:{String} name - 主题名称
参数:{Object} options - 参考配置选项
示例:
$.validator.setTheme("myTheme", {
formClass: "nice-flat",
msgClass: "n-right",
timely: 2,
stopOnError: true
});
instance (实例方法)
实例方法需要获取对象实例,才能调用。
验证初始化的时候会自动初始实例,通过$form.data('validator')
可以获取到实例
.test(elem, rule)
描述:验证字段是否符合指定的规则
参数:{Element} elem - DOM 元素
参数:{String} rule - 规则
返回:{Boolean}
示例:
$("#myForm").validator({
rules: {
loginName: function(element) {
return /^[a-zA-Z]\w{3,}/.test(element.value)
|| this.test(element, "mobile")
|| this.test(element, "email")
|| 'Please fill user name, phone number or E-mail';
}
},
fields: {
username: "required; loginName",
password: "required; length(6~16)"
}
});
.setField()
.setField(key, field)
描述:动态配置字段参数
参数:{String} key - 字段 name 或者 #id
参数:{Object} field - 字段参数
示例:
$('form').validator("setField", "username", "required;");
// Remove the field's verification.
$('form').validator("setField", "username", null);
.setField(obj)
描述:动态配置字段参数
参数:{Object} obj - 字段参数 Hash
示例:
$('form').validator("setField", {
username: "required;username",
pwd: "required;password"
});
.showMsg(elem, obj)
描述:使字段提示消息(不推荐),推荐使用.trigger("showmsg")
参数:{Element | jqSelector} elem - DOM 元素或者 jQuery 选择器
参数:{Object} obj - 参数
示例:
// 单个字段提示消息
$('form').validator('showMsg', '#mobile', {
type: "error",
msg: "Phone number already exists."
});
// 映射消息到多个字段
$('form').validator('showMsg', {
mobile: {
type: "error",
msg: "Phone number already exists."
},
email: {
type: "error",
msg: "Email already exists."
}
});
.hideMsg(elem)
描述:使字段隐藏消息(不推荐),推荐使用.trigger("hidemsg")
参数:{Element|jqSelector} elem - DOM 元素或者 jQuery 选择器
示例:
$('#form1').validator('hideMsg', '#mobile');
// or
$('#form1').data('validator').hideMsg('#mobile');
.holdSubmit(hold)
描述:防止表单重复提交的措施
参数:{Boolean} hold - 是否控制表单提交
示例:
$("#myForm").validator({
valid: function(form){
var me = this;
// Before submitting the form, hold form, to prevent duplicate submission.
me.holdSubmit();
$.ajax({
url: "xxx.php",
data: $(form).serialize(),
type: "POST",
success: function(){
// After the form is submitted successfully, release hold.
me.holdSubmit(false);
}
});
}
});
.cleanUp()
描述:清除表单中的全部验证消息
示例:
$('#form1').validator('cleanUp');
.destroy()
描述:销毁表单验证实例
示例:
$('#form1').validator('destroy');