required - 必填

适用于 input、textarea、select 输入框。(checkbox 与 radio 请使用 checked 规则)
字段必填,则值不能为空。字段非必填,则值为空的时候直接验证通过
nice-validator 扩展了选择器 :filled,选择填写了的字段

规则 描述 示例
required 字段必填 required
required(ruleName) 满足规则 ruleName 则字段必填 required(isCompany)
required(jqSelector) 满足 jqSelector 则字段必填 (v0.8.0+) required(#id:filled)、required(#id:checked)、required(#id:enabled)
required(from, class, count) 在一组字段中至少填写一个或多个 (v0.8.0+) required(from, .contact)
required(not, value) 字段必填,但是排除值为 value 的情况 required(not, -1)

示例:字段必填

input type="text" name="username" data-rule="required">
<select name="gender" data-rule="required">
<option value="">select ...</option>
<option value="1">Male</option>
<option value="2">Female</option>
<option value="3">Other</option>
</select>
<textarea name="content" data-rule="required"></textarea>
示例:只有在 A 字段填写过后,B 字段才必填
$('#form1').validator({
fields: {
A: 'required',
B: 'required(#A:filled)'
}
});
示例:如果满足 jQuery 选择器 "#isCompany:checked",则字段必填
$('#form1').validator({
fields: {
companyName: 'required(#isCompany:checked)'
}
});
示例:如果满足规则 "isCompany",则字段必填
<form id="form1">
<input type="checkbox" name="isCompany" id="isCompany">
<input type="text" name="companyName">
</form>
$('#form1').validator({
rules: {
isCompany: function() {
return $('#isCompany').prop('checked');
}
},
fields: {
companyName: 'required(isCompany)'
}
});
示例:className 为 contact 的字段至少填写一个
<input class="contact" name="mobile" placeholder="手机号"
data-rule="required(from, .contact); mobile"
data-msg-required="请至少填写一种联系方式"> <input class="contact" name="tel" placeholder="电话"
data-rule="required(from, .contact); tel"> <input class="contact" name="email" placeholder="邮箱"
data-rule="required(from, .contact); email">

checked - 必选

注意:checkbox 和 radio 类型的输入框请使用 checked 规则(而不是 required)

规则 描述
checked 必选
checked(n) 必选 n 项
checked(n~) 至少选择 n 项
checked(~n) 最多选择 n 项
checked(n1~n2) 选择 n1 到 n2 项

示例:至少选择一项

<label><input type="radio" name="gender" value="1" data-rule="checked">男</label>
<label><input type="radio" name="gender" value="2">女</label>
<label><input type="radio" name="gender" value="0">保密</label>

match - 两个字段匹配和比较

match 可以用于比较两个字段值是否相同,或是否不同,或大小关系,也可以用于比较日期或者时间

规则 描述
match(name) 当前字段值必须和 name 字段的值匹配
match(eq, name) 同上
match(neq, name) 当前字段值必须和 name 字段值不同
match(lt, name) 当前字段值必须小于 name 字段值
match(gt, name) 当前字段值必须大于 name 字段值
match(lte, name) 当前字段值必须小于等于 name 字段值
match(gte, name) 当前字段值必须大于等于 name 字段值
match(gte, name, date) 当前日期值必须大于等于 name 字段日期值
match(gte, name, datetime) 当前时间值必须大于等于 name 字段时间值

示例:确认密码要与密码一致

<label>密码:</label>
<input name="pwd" data-rule="密码: required;password;">
<label>确认密码:</label>
<input name="confirmPwd" data-rule="确认密码: match(pwd);"> 示例:结束日期必须大于开始日期
<label>开始日期:</label>
<input name="startDate" data-rule="开始日期: required;date;">
<label>结束日期:</label>
<input name="endDate" data-rule="结束日期: required;date;match(gt, startDate, date)">

remote - 远程验证

服务端验证并返回结果,URL 为必传参数,默认 POST 请求

规则 描述
remote(URL) 请求服务端验证
remote(get:URL) 使用 GET 方式请求服务端验证
remote(URL, name1, #id2 ...) 传递额外动态参数
remote(URL, foo=value1&bar=value2, name3 ...) 传递额外固定参数 (v0.8.0+)
remote(URL, foo:name1, bar:#id2, name3 ...) 代理参数名称(实际服务器接收的参数为 foo 和 bar)
remote(jsonpURL) 跨域地址自动采用 JSONP 请求方式
`remote([cors: jsonp:][get: post:]URL)` 强制 CORS 请求或者 JSONP 请求,强制 GET 或者 POST 请求 (v0.10.8+)

示例:跨域请求

// 强制 jsonp 请求
"remote(jsonp:/user/checkName)"
// 强制 CORS, 请求类型为 POST (0.10.8+)
"remote(cors:post:/user/checkName)"

服务端返回结果格式

1.直接返回字符串结果

// 为空代表通过
""
// 不为空则代表错误
"名字已被占用"
2.返回 JSON 格式
// 验证通过
{"ok": "名字很棒"}
// 验证不通过
{"error": "名字已被占用"} // 结果在第二级 data
{"status": 200, "data": {"error": "名字已被占用"}}

前端转换服务端返回的结果格式

示例:如果服务端返回格式无法更改,可以用 dataFilter 参数转换

/* 假设服务端返回结果为: {"status":600, "msg":"名字已被占用"}
*/
$('#form1').validator({
dataFilter: function(data) {
if (data.status === 200) return "";
else return data.msg;
},
fields: {
name: "required; length(4~12); remote(/user/check/name)"
}
});

integer - 整数

整数或者整数范围

规则 描述
integer 整数
integer(+) 正整数
integer(+0) 正整数和零
integer(-) 负整数
integer(-0) 负整数和零

range - 数值范围

注意:只验证范围,不验证是整数或者浮点数

规则 描述
range(n~) 请填写不小于 n 的数
range(~n) 请填写不大于 n 的数
range(n1~n2) 请填写 n1 到 n2 的数
range(n1~n2, false) 请填写 n1 到 n2 的数(不包含边界值)(v0.9.0+)

示例:输入 0 ~ 100 的整数

<input name="score" data-rule="required; integer[+0]; range[~100]">

length - 字符长度

如果传第二个参数 “true”,则全角字符(汉子)计算为两个字符

示例

<!-- 密码为 6 到 16 位 -->
<input type="password" name="pwd" data-rule="required;length(6~16)">
<!-- 内容不超过 140 个字符 -->
<textarea name="content" data-rule="length(~140)"></textarea>

filter - 过滤字符

注意:只过滤字符,不验证

规则 描述
filter 过滤 <>`"' 和字符实体编码的字符
filter(RegExp) 自定义过滤正则

示例

// 过滤非数字字符
"filter(\D)"
// 过滤非中文
"filter(^\u0391-\uFFE5)"
 

Nice Jquery Validator 内置属性的更多相关文章

  1. javascript内置属性——arguments

    arguments是javascript中的内置属性,可以直接调用函数的参数,作用类似Array,但本身并不是数组.这次发现它是为了实现封装函数,将不确定数量的数字乘积.比如function mult ...

  2. Ant 脚本打印系统属性变量、ant内置属性

    Ant 脚本打印系统属性变量.ant内置属性 作用 编写ant脚本的时候,经常会引用到系统属性,本脚本用于打印系统常用属性(System.getProperties)与环境变量(Environment ...

  3. JavaScript学习——内置属性

    在js中,几乎所有的对象都是同源对象,都继承Object对象.对象的内置属性指的是它们作为Object实例所具有的属性,这些属性通常反映对象本身的基本信息和数据无关.因此我们称它们为元属性.这些属性通 ...

  4. 对象的内置属性和js的对象之父Object()

    js中对象有constructor,valueOf(),toString()等内置属性和方法; 创建一个空对象的方法: var o = {}; 或者 var o= new Object(); o.co ...

  5. Maven内置属性

    1.内置属性:如${project.basedir}表示项目根目录,${ project.version}表示项目版本 2.POM属性:用户可以引用pom文件中对应的值.如: ${project.bu ...

  6. Maven内置属性、POM属性

    1.内置属性(Maven预定义,用户可以直接使用) ${basedir}表示项目根目录,即包含pom.xml文件的目录; ${version}表示项目版本; ${project.basedir}同${ ...

  7. python的反射函数(hasattr()、getattr()、setattr()与delattr())和类的内置属性attr(__getattr()__、__setattr()__与__delattr()__)

    主要是指程序可以访问.检测和修改它本身状态或行为的一种能力(自省),有四个可以实现自省函数. hasattr(object,name) 判断object中是否有name字符串对应的属性或方法,返回Tr ...

  8. Maven内置属性,pom属性

    内置属性(Maven预定义,用户可以直接使用) ${basedir}表示项目根目录,即包含pom.xml文件的目录; ${version}表示项目版本; ${project.basedir}同${ba ...

  9. Maven内置属性及使用

    Maven共有6类属性: 内置属性(Maven预定义,用户可以直接使用) ${basedir}表示项目根目录,即包含pom.xml文件的目录; ${version}表示项目版本; ${project. ...

随机推荐

  1. Java基础知识面试题及答案-整理

    1.String类可以被继承吗?  不能.String类在声明中使用final关键字修饰符.使用final关键字修饰的类无法被继承. Java语言的开发者为什么要将String类定义为final类呢? ...

  2. AIX 解除镜像再重建同步

    扩展fs发现pv状态变成removed,用chpv -v -a hdisk即可,至于什么原因造成removed? 一.解除vg mirrorunmirrorvg vgname hdiskx hdisk ...

  3. [Asp.Net Core] Blazor Server Side 扩展用途 - 配合CEF来制作带浏览器核心的客户端软件 (二) 可运行版本

    前言 大概3个星期之前立项, 要做一个 CEF+Blazor+WinForms 三合一到同一个进程的客户端模板. 这个东西在五一的时候做出了原型, 然后慢慢修正, 在5天之前就上传到github了. ...

  4. C# 数据操作系列 - 13 SugarSql初探

    0. 前言 前言,暂时挥别NHibernate(虽然我突然发现这玩意还挺有意思的,不过看得人不多).大步进入了有很多小伙伴向我安利的SQLSugar,嗯,我一直叫SugarSQL,好像是这个吧? 这是 ...

  5. 15-2 insert语句介绍

    create table TblClass ( tClassId ,) primary key, tClassName ) ) --向班级表中插入一条记录 --insert into 表名(列1,列2 ...

  6. k3s-安装

    k3s介绍 K3S是一个轻量级的K8S集群,它是Rancher Lab开发的一个新的产品, 目的是在资源有限的设备上面跑K8S.它的最大特点就是小,二进制包只有40MB,只需要512MB的内存就能跑起 ...

  7. 多线程(thread+queue 售票)

    一.理解 如果线程里每从队列里取一次,但没有执行task_done(),则join无法判断队列到底有没有结束,在最后执行个join()是等不到结果的,会一直挂起.可以理解为,每task_done一次 ...

  8. shiro认证通过之后的授权

    subject.hasRole("") ; subject.hasRoles(List); subject.hasAllRoles(); subject.isPermitted(& ...

  9. PAT1034 有理数四则运算 (20分)

    1034 有理数四则运算 (20分)   本题要求编写程序,计算 2 个有理数的和.差.积.商. 输入格式: 输入在一行中按照 a1/b1 a2/b2 的格式给出两个分数形式的有理数,其中分子和分母全 ...

  10. .NET编程5月小结 - Blazor, Unity, Dependency Injection

    本文是我在5月份看到的一些有趣的内容的集合.在这里你可以找到许多有关Blazor.ASPNET Core的学习资源和示例项目,有关在Unity中使用Zenject进行单元测试的博客,有关Unity项目 ...