API Docs for: 0.2
Show:

JC.Valid Class

表单验证 (单例模式)
全局访问请使用 JC.Valid 或 Valid

require: JC.common

JC Project Site | API docs | demo link

Form 的可用 html attribute

errorabort = bool, default = true
查检Form Control时, 如果发生错误是否继续检查下一个
true: 继续检查, false, 停止检查下一个
validmsg = bool | string
内容填写正确时显示的 提示信息, class=validmsg
如果 = 0, false, 将不显示提示信息
如果 = 1, true, 将不显示提示文本
validemdisplaytype = string, default = inline
设置 表单所有控件的 em CSS display 显示类型
ignoreAutoCheckEvent = bool, default = false
是否禁用 自动 check 事件( focus, blur, change )

Form Control的可用 html attribute

reqmsg = 错误提示
值不能为空, class=error errormsg
errmsg = 错误提示
格式错误, 但不验证为空的值, class=error errormsg
focusmsg = 控件获得焦点的提示信息
这个只作提示用, class=focusmsg
validmsg = bool | string
内容填写正确时显示的 提示信息, class=validmsg
如果 = 0, false, 将不显示提示信息
如果 = 1, true, 将不显示提示文本
emel = selector
显示错误信息的selector
validel = selector
显示正确信息的selector
focusel = selector
显示提示信息的selector
validemdisplaytype = string, default = inline
设置 em 的 CSS display 显示类型
ignoreprocess = bool, default = false
验证表单控件时, 是否忽略
minlength = int(最小长度)
验证内容的最小长度, 但不验证为空的值
maxlength = int(最大长度)
验证内容的最大长度, 但不验证为空的值
minvalue = number|ISO date(最小值)
验证内容的最小值, 但不验证为空的值
maxvalue = number|ISO date(最大值)
验证内容的最大值, 但不验证为空的值
validitemcallback = function
对一个 control 作检查后的回调, 无论正确与否都会触发, window 变量域
function validItemCallback( _selector, _isValid ){
}
validHidden = bool, default = false
是否验证隐藏的控件
rangeCanEqual = bool, default = true
nrange 和 daterange 的开始值和结束值是否可以相等
datatype: 常用数据类型
n: 检查是否为正确的数字
n-i.f: 检查数字格式是否附件要求, i[整数位数], f[浮点数位数], n-7.2 = 0.00 ~ 9999999.99
nrange: 检查两个control的数值范围
html attr fromNEl: 指定开始的 control
html attr toNEl: 指定结束的 control
如果不指定 fromNEl, toNEl, 默认是从父节点下面找到 nrange, 按顺序定为 fromNEl, toNEl
f: 检查是否为正确的数字, default: f-9.2
f-i.f: 检查数字格式是否附件要求, i[整数位数], f[浮点数位数], f-7.2 = 0.00 ~ 9999999.99
d: 检查是否为正确的日期, YYYYMMDD, YYYY/MM/DD, YYYY-MM-DD, YYYY.MM.DD
daterange: 检查两个control的日期范围
html attr fromDateEl: 指定开始的 control
html attr toDateEl: 指定结束的 control
如果不指定 fromDateEl, toDateEl, 默认是从父节点下面找到 daterange, 按顺序定为 fromDateEl, toDateEl
html attr datespan:, 指定开始与结束日期的时间跨度(JC.f.dateDetect)
time: 是否为正确的时间, hh:mm:ss
minute: 是否为正确的时间, hh:mm
bankcard: 是否为正确的银行卡
格式为: 9 ~ 25 位数字
cnname: 中文姓名
格式: 汉字和大小写字母
规则: 长度 2-32个字节, 非 ASCII 算2个字节
enname: 英文姓名
格式: 大小写字母 + 空格
规则: 长度 2-32个字节, 非 ASCII 算2个字节
allname: cnname | enname
中文姓名和英文姓名的复合验证
username: 注册用户名
格式: a-zA-Z0-9_-
规则: 首字母必须为 [a-zA-Z0-9], 长度 2 - 30
idnumber: 身份证号码, 15~18 位
mobilecode: 手机号码, 11位, (13|14|15|16|17|18|19)[\d]{9}
mobile: mobilecode 的别名
mobilezonecode: 带 国家代码的手机号码, [+国家代码] [零]11位数字
phonecode: 电话号码, 7~8 位数字, [1-9][0-9]{6,7}
phone: 带区号的电话号码, [区号][空格|空白|-]7~8位电话号码
phoneall: 带国家代码, 区号, 分机号的电话号码, [+国家代码][区号][空格|空白|-]7~8位电话号码#1~6位
phonezone: 电话区号, 3~4位数字. phonezone-n,m 可指定位数长度
phoneext: 电话分机号, 1~6位数字
countrycode: 地区代码, [+]1~6位数字
mobilephone: mobilecode | phone
mobilephoneall: mobilezonecode | phoneall
reg: 自定义正则校验, /正则规则/[igm]
vcode: 验证码, 0-9a-zA-Z, 长度 默认为4
可通过 vcode-[\d], 指定验证码长度
text: 显示声明检查的内容为文本类型
默认就是 text, 没有特殊原因其实不用显示声明
bytetext: 声明按字节检查文本长度
ASCII 算一个字符, 非 ASCII 算两个字符
url: URL 格式, ftp, http, https
domain: 匹配域名, 宽松模式, 允许匹配 http(s), 且结尾允许匹配反斜扛(/)
stricdomain: 匹配域名, 严格模式, 不允许匹配 http(s), 且结尾不允许匹配反斜扛(/)
email: 电子邮件
zipcode: 邮政编码, 0~6位数字
taxcode: 纳税人识别号, 长度: 15, 18, 20
checkbox: 默认需要至少选中N 个 checkbox
默认必须选中一个 checkbox
如果需要选中N个, 用这种格式 checkbox-n, checkbox-3 = 必须选中三个
datatarget: 声明所有 checkbox 的选择器
file: 判断文件扩展名
属性名(文件扩展名列表): fileext
格式: .ext[, .ext]
<input type="file" reqmsg="文件" errmsg="允许上传的文件类型: .gif, .jpg, .jpeg, .png" datatype="file" fileext=".gif, .jpg, .jpeg, .png" /> <label>.gif, .jpg, .jpeg, .png</label> <em class="error"></em> <em class="validmsg"></em>
qq: 检查QQ号码, 5 ~ 11位数字
qqall: 检查QQ号码, [ qq | email ]
subdatatype: 特殊数据类型, 以逗号分隔多个属性
alternative: N 个 Control 必须至少有一个非空的值
datatarget: 显式指定同一组 control, 默认在父级下查找[subdatatype=alternative]
alternativedatatarget: 与 datatarget相同, 区别是优先级高于 datatarget
alternativemsg: N 选一的错误提示
alternativeReqTarget: 为 alternative node 指定一个不能为空的 node
请使用 subdatatype = reqtarget, 这个附加属性将弃除
alternativeReqmsg: alternativeReqTarget 目标 node 的html属性, 错误时显示的提示信息
reqtarget: 如果 selector 的值非空, 那么 datatarget 的值也不能为空
datatarget: 显式指定 目标 target
reqTargetDatatarget: 与 datatarget相同, 区别是优先级高于 datatarget
reqtargetmsg: target node 用于显示错误提示的 html 属性
reconfirm: N 个 Control 的值必须保持一致
datatarget: 显式指定同一组 control, 默认在父级下查找[subdatatype=reconfirm]
reconfirmdatatarget: 与 datatarget相同, 区别是优先级高于 datatarget
reconfirmmsg: 值不一致时的错误提示
unique: N 个 Control 的值必须保持唯一性, 不能有重复
datatarget: 显式指定同一组 control, 默认在父级下查找[subdatatype=unique]
uniquedatatarget: 与 datatarget相同, 区别是优先级高于 datatarget
uniquemsg: 值有重复的提示信息
uniqueIgnoreCase: 是否忽略大小写
uniqueIgnoreEmpty: 是否忽略空的值, 如果组中有空值也会被忽略
processDisabled: 是否处理 disabled 但 visible 的node
unique-n 可以指定 N 个为一组的匹配, unique-2 = 2个一组, unique-3: 三个一组
datavalid: 判断 control 的值是否合法( 通过HTTP请求验证 )
datavalidMsg: 值不合法时的提示信息
datavalidUrl: 验证内容正确与否的 url api

{"errorno":0,"errmsg":""}

errorno: 0( 正确 ), 非0( 错误 )

datavalidurl="./data/handler.php?key={0}"

{0} 代表 value
datavalidCheckCallback: 验证内容正确与否的回调(优先级比 datavalidUrl 高)
window.datavalidCheckCallback =
function (){
   var _r = { 'errorno': 1, errmsg:'验证码错误' }, _sp = $( this ), _v = _sp.val().trim().toLowerCase();
   if( _v && _v === window.CHECK_CODE ){
       _r.errorno = 0;
   }
   return _r;
};
             
datavalidNoCache: 是否禁止缓存, default = true
datavalidAjaxType: ajax 请求类型, default = get
datavalidRequestData: ajax 请求数据, json data
datavalidCallback: 请求 datavalidUrl 后调用的回调
function datavalidCallback( _json ){
   var _selector = $(this);
});
datavalidKeyupCallback: 每次 keyup 的回调
function datavalidKeyupCallback( _evt ){
   var _selector = $(this);
});
datavalidUrlFilter: 请求数据前对 url 进行操作的回调
function datavalidUrlFilter( _url ){
   var _selector = $(this);
   _url = JC.f.addUrlParams( _url, { 'xtest': 'customData' } );
   return _url;
});
hidden: 验证隐藏域的值
有些特殊情况需要验证隐藏域的值, 请使用 subdatatype="hidden"
ucheck: 用户自定义验证
ucheckmsg: 验证出错的提示信息
ucheckCallback: 用于验证的函数 window变量域
function ucheck_n( _item ){
   var _r = false, _v = JC.f.parseFinance( _item.val() );
   if( _v === 0 || ( _v >= 30 && _v >= 50 ) ){
       _r = true;
   }
   return _r;
}
subdatatype = even: 数值必须为偶数
subdatatype = odd: 数值必须为奇数
exdatatype: 特殊数据类型, 以逗号分隔多个属性, 该类型只用于显示视觉效果, 不作为实际验证的判断
datavalid: 判断 control 的值是否合法( 通过HTTP请求验证 )(只用于显示视觉效果, 不作为实际验证的判断)
其他参数与 subdatatype = datavalid 相同

Item Index

Methods

Properties

Methods

check

(
  • _item
)
Boolean static

验证一个表单项, 如 文本框, 下拉框, 复选框, 单选框, 文本域, 隐藏域

Parameters:

  • _item Selector

    需要验证规则正确与否的表单/表单项( 可同时传递多个_item )

Returns:

Example:

     JC.Valid.check( $( selector ) );
     JC.Valid.check( $( selector ), $( anotherSelector );
     JC.Valid.check( document.getElementById( item ) );
     if( !JC.Valid.check( $('form') ) ){
         _evt.preventDefault();
         return false;
     }

checkAll

(
  • _item
)
static

这个方法是 Valid.check 的别名

Parameters:

  • _item Selector
    • 需要验证规则正确与否的表单/表单项

checkTimeout

(
  • _selector
  • _tm
)
Valid instance static

检查是否需要延时 check
以 html 属性 validCheckTimeout 定义, int 类型, type = ms

Parameters:

  • _selector Selector
  • _tm Int

Returns:

Valid instance:

clearError

(
  • _selector
)
static

清除Valid生成的错误样式

Parameters:

  • _selector Form | Input | Textarea | Select | File | Password
    • 需要清除错误的选择器

Example:

     JC.Valid.clearError( 'form' );
     JC.Valid.clearError( 'input.some' );

dataValid

(
  • _selector
  • _settter
  • _noStatus
  • _customMsg
)
static

判断/设置 selector 的数据是否合法
通过 datavalid 属性判断

Parameters:

  • _selector Selector
  • _settter Bool
  • _noStatus Bool
  • _customMsg String

Returns:

bool

getInstance

(
  • _selector
)
Valid instance static

获取 Valid 的实例 ( Valid 是单例模式 )

Parameters:

  • _selector Selector

Returns:

Valid instance:

ignore

(
  • _item
  • _delIgnore
)
static

判断 表单控件是否为忽略检查 或者 设置 表单控件是否为忽略检查

Parameters:

  • _item Selector
  • _delIgnore Bool

    是否删除忽略属性, 如果为 undefined 将不执行 添加删除操作

Returns:

bool

isFormControl

(
  • _selector
)
static

判断 _selector 是否为 form control

Parameters:

  • _selector Selector

Returns:

bool

isValid

(
  • _selector
)
static

判断 selector 是否 Valid 的处理对象

Parameters:

  • _selector Selector

Returns:

bool

on

(
  • _evtName
  • _cb
)
private

使用 jquery on 绑定事件

Parameters:

Returns:

ValidInstance

parse

(
  • _item
)
private

分析_item是否附合规则要求

Parameters:

  • _item Selector

setError

(
  • _items
  • _msgAttr
  • _fullMsg
)
static

把一个表单项的状态设为错误状态

Parameters:

  • _items Selector
  • _msgAttr String
    • 显示指定需要读取的错误信息属性名, 默认为 reqmsg, errmsg, 通过该属性可以指定别的属性名
                                   <br /> 如果 _msgAttr 的第一个字符为空格, 将视为提示信息, 并自动生成属性 autoGenerateErrorMsg
  • _fullMsg Bool
    • 显示指定错误信息为属性的值, 而不是自动添加的 请上传/选择/填写

setFocusMsg

(
  • _items
  • _setHide
  • _msgAttr
)
static

显示 focusmsg 属性的提示信息( 如果有的话 )

Parameters:

  • _items Selector
  • _setHide Bool
  • _msgAttr String
    • 显示指定需要读取的focusmsg信息属性名, 默认为 focusmsg, 通过该属性可以指定别的属性名
                                   <br /> 如果 _msgAttr 的第一个字符为空格, 将视为提示信息, 并自动生成属性 autoGenerateFocusMsg

setValid

(
  • _items
  • _tm
)
static

把一个表单项的状态设为正确状态

Parameters:

  • _items Selector
  • _tm Int

    延时 _tm 毫秒显示处理结果, 默认=150

trigger

(
  • _evtName
)
private

使用 jquery trigger 绑定事件

Parameters:

Returns:

ValidInstance

Properties

_formControls

Unknown private static

定义 form control

Sub-properties:

  • _selector Selector

autoTrim

Bool static

是否自动清除两边的空格

Default: true

Example:

       $(document).ready( function($evt){
           JC.Valid.autoTrim = false;
       });

emDisplayType

String static

设置 em 的 css display 属性

Default: inline

errorAbort

Bool static

验证发生错误时, 是否终止继续验证
为真终止继续验证, 为假将验证表单的所有项, 默认为 false

Default: false

Example:

       $(document).ready( function($evt){
           JC.Valid.errorAbort = true;
       });

focusmsgEverytime

Bool static

focus 时,是否总是显示 focusmsg 提示信息

Default: true

ignoreAutoCheckEvent

Bool static

是否禁用 自动 check 事件( focus, blur, change )

Default: false

itemCallback

Function static

对一个 control 作检查后的回调, 无论正确与否都会触发

Default: undefined

Example:

       $(document).ready( function($evt){
           JC.Valid.itemCallback =
               function( _item, _isValid ){
                   JC.log( 'JC.Valid.itemCallback _isValid:', _isValid );
               };
       });

showValidStatus

Bool static

验证正确时, 是否显示正确的样式

Default: false

Events

ValidCorrect

解析正确时触发的时件

ValidError

解析错误时触发的时件