jQuery 插件 - ginkgo


验证规则

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

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} 为表单值。

服务器返回

3.0.2 起,服务器返回的参数名改为可选,以下例子为默认值。

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

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

高级用法,例如:

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 中。


更新时间 11-16 13:18
Top