jQuery plugins


验证规则

所有验证规则都在此设置,每个字段一个对象

var opts_validate = {
    rules: {
        tag_name: {
            require: true, // 验证类型
            format: 'alpha_dash' // 验证格式
        },
        tag_note: {
            length: '1,30' // 验证类型
        },
        tag_status: {
            require: true
        },
        // 更多规则...
    },
    // 更多配置...
};

常规验证

require

验证某个字段必须,例如:

rules: {
    name: {
        require: true,
    },
},

accepted

验证某个字段是否为为 yes, on, 或是 1。这在确认 "服务条款" 是否同意时很有用,例如:

rules: {
    name: {
        accepted: true,
    },
},

长度和区间验证

in

验证某个字段的值是否在某个范围,例如:

rules: {
    name: {
        in: '1,2,3',
    },
},

not_in

验证某个字段的值不在某个范围,例如:

rules: {
    name: {
        not_in: '1,2,3',
    },
},

between

验证某个字段的值是否在某个区间,例如:

rules: {
    name: {
        between: '25,60',
    },
},

not_between

验证某个字段的值不在某个区间,例如:

rules: {
    name: {
        not_between: '20,30',
    },
},

length

验证某个字段的值的长度是否在某个范围,例如:

rules: {
    name: {
        length: '4,25',
    },
},

min

验证某个字段的值的最小长度,例如:

rules: {
    name: {
        min: 4,
    },
},

max

验证某个字段的值的最大长度,例如:

rules: {
    name: {
        max: 25,
    },
},

after

验证某个字段的值是否在某个日期之后,例如:

rules: {
    name: {
        after: '2016-3-18',
    },
},

before

验证某个字段的值是否在某个日期之前,例如:

rules: {
    name: {
        before: '2016-3-18',
    },
},

expire

验证某个字段是否在某个有效日期之内,例如:

rules: {
    name: {
        expire: '2016-2-1,2016-10-01',
    },
},

字段比较

confirm

验证某个字段是否和另外一个字段的值一致,例如:

rules: {
    password: {
        require: true,
    },
    password_confirm: {
        confirm: true,
    },
},

系统会自动验证 password_confirm 与 password 是否一致。

该规则是自动验证的,只要在需要验证的字段名后加上 _confirm,也可以指定需要验证的字段名,例如:

rules: {
    password: {
        require: true,
    },
    repassword: {
        confirm: 'password',
    },
},

different

验证某个字段是否和另外一个字段的值不一致,例如:

rules: {
    account: {
        require: true,
    },
    account_different: {
        different: true,
    },
},

该规则与 confirm 类似,只要在需要验证的字段名后加上 _different,也可以指定需要验证的字段名,例如:

rules: {
    account: {
        require: true,
    },
    reaccount: {
        different: 'account',
    },
},

gt 或 >

验证是否大于某个值,例如:

rules: {
    score: {
        gt: 100,
    },
    num: {
        '>': 100,
    },
},

egt 或 >=

验证是否大于等于某个值,例如:

rules: {
    score: {
        egt: 100,
    },
    num: {
        '>=': 100,
    },
},

lt 或 <

验证是否小于某个值,例如:

rules: {
    score: {
        lt: 100,
    },
    num: {
        '<': 100,
    },
},

elt 或 <=

验证是否小于等于某个值,例如:

rules: {
    score: {
        elt: 100,
    },
    num: {
        '<=': 100,
    },
},

eq、= 或 same

验证是否等于某个值,例如:

rules: {
    score: {
        eq: 100,
    },
    num: {
        '=': 100,
    },
    num_1: {
        same: 100,
    },
},

neq、<> 或 !=

验证是否不等于某个值,例如:

rules: {
    score: {
        neq: 100,
    },
    num: {
        '<>': 100,
    },
    num_1: {
        '!=': 100,
    },
},

格式验证

格式验证只需设置 format 参数

rules: {
    name: {
        format: 'number',
    },
},

format 参数可选如下值

描述
number 纯数字(不包含负数和小数点)
int 整数
float 浮点数
bool 布尔值
email Email
array 数组
date 有效日期
time 有效时间
date_time 有效日期时间
alpha 字母
alpha_number 字母与纯数字
alpha_dash 字母、数字、破折号与下划线
chs 中文
chs_alpha 中文与字母
chs_alpha_number 中文、字母与纯数字
chs_dash 中文、字母、数字、破折号与下划线
url URL 地址
ip IP 地址(含 IPv4 与 IPv6)

特殊格式验证

以下规则为验证值是否为指定的格式,如:

假设规则为 Y-m-d

表单输入值为 2019-05-06 时,验证通过

表单输入值为 19-05-06May. 6, 2019 验证不通过

date_format

验证某个字段的值是否为指定格式的日期,例如:

rules: {
    create_time: {
        date_format: 'Y-m-d',
    },
},

time_format

验证某个字段的值是否为指定格式的时间,例如:

rules: {
    create_time: {
        time_format: 'H:i:s',
    },
},

date_time_format

验证某个字段的值是否为指定格式的日期时间,例如:

rules: {
    create_time: {
        date_time_format: 'Y-m-d H:i:s',
    },
},

正则验证

支持直接使用正则验证,例如:

rules: {
    zip: {
        regex: '\d{6}',
    },
},

ajax 验证

基本用法,例如:

rules: {
    zip: {
        require: true,
        ajax: {
            url: 'ajax.json'
        }
    },
},

上述例子会使用 ajax.json?zip={:value} 形式的 URL 进行验证。

URL 中的 zip 参数默认为规则名,{:value} 为表单值。

服务器返回

插件接受 json 对象的返回,如:

{
    msg: '验证成功', // 消息
    error: '' // 错误信息,当此对象未定义或为空时,则视为验证成功
}

高级用法,例如:

rules: {
    zip: {
        require: true,
        ajax: {
            key: 'zipcode',
            attach: {
                selectors: ['#cate', '#parent'],
                keys: ['cate', 'parent']
            },
            url: 'ajax.json'
        }
    },
},

上述例子会使用 ajax.json?zipcode={:value}&cate={:cate}&parent={:parent} 形式的 URL 进行验证。

URL 中的 zipcode 参数由 key 对象定义。

attach 对象为附加查询,其中:

  • selectors 定义的为表单选择器
  • keys 定义的为参数名

他们会以 {:参数名}=>{:选择器的值} 的形式附加到 URL 中。