$.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');