(1)、直接引用

一行代码引入插件,local 参数用来加载对应的配置文件。如果不传 local 参数,配置以及样式就需要自行引入。

<script src="path/to/nice-validator/jquery.validator.js?local=zh-CN"></script>

(2)、通过 RequireJS 模块系统

requirejs.config({
paths: {
jquery: 'http://cdn.jsdelivr.net/jquery/1.12.3/jquery.min',
validator: 'path/to/nice-validator/local/zh-CN'
},
shim: {
validator: ['path/to/nice-validator/jquery.validator.js?css']
}
});
require(['jquery', 'validator'], function($){
$('#form1').validator();
});

2. 了解规则

(1)、定义规则语句

"display: rule1; rule2(p1, p2); ...rulen(n1~n2)"

1.前面的 display: 是可选的,用于替换错误消息中的{0},一般为显示的字段名。

2.多个规则由分号(;)分开,末尾分号可省略,不限制规则数量,按规则先后顺序执行验证

3.未定义的规则自动忽略,对验证不产生影响

规则语句中的符号:

  • 分号 ; - 分隔多个规则,也代表逻辑与
  • 冒号 : - 分隔 display(字段显示名)与规则语句
  • 括号 () - 规则传参使用,也可以使用方括号([ ])
  • 逗号  - 分隔规则的参数,注意:逗号后需加空格
  • 波浪 ~ - 定义范围值使用
  • 俺的 & - 逻辑与,用在某个规则前面,与;(分号)效果差不多
  • 叹号 ! - 逻辑非,用在某个规则前面,对规则取反
  • 竖线 | - 逻辑或,用在多个规则之间,多个规则满足之一则通过

示例

// 单个规则
"required"
// 多个规则
"required; email; remote(/server/check/email)"
// 范围参数
"range(1~100)"
// 规则有多个参数
"match(neq, oldPassword)"
// 定义显示替换名称
"邮箱: required; email"
// 逻辑或
"required; mobile|email; remote(/server/check/user)"
// 逻辑非
"required; !digits"

(2)、配置规则

示例:DOM 配置规则,使用 data-rule

<input name="email" data-rule="required;email;remote(/path/to/server)">

示例:JS 配置规则,使用 fields 参数

$("#form").validator({
fields: {
email: "required;email;remote(/path/to/server)"
}
});

(3)、内置规则

插件内置 8 个规则:

自定义规则如果与内置规则同名,则自定义规则优先
详情参考内置规则

示例:在 local/zh-CN.js 中配置全局规则(全局生效

$.validator.config({
rules: {
mobile: [/^1[3-9]\d{9}$/, "请填写有效的手机号"],
chinese: [/^[\u0391-\uFFE5]+$/, "请填写中文字符"]
}
});


示例:通过 DOM 方式自定义规则(只对当前字段有效)
<input name="demo" data-rule="required; xxx" data-rule-xxx="[/^\d{6}$/, '请输入6位数字']">

示例:通过 rules 配置规则(当前表单实例有效
$('#form1').validator({
rules: {
// 使用正则表达式定义规则
mobile: [/^1[3-9]\d{9}$/, "请填写有效的手机号"],
// 使用函数定义规则
xxx: function(elem, param) {
return /^1[3458]\d{9}$/.test($(elem).val()) || '请检查手机号格式';
}
},
fields: {
// 对字段 username 应用规则 mobile
'username': 'required;mobile'
}
});

3. 初始化验证

(1)、DOM 绑定规则,无需 JS 代码

<form id="form1" action="register.php">
<label>Email</label>
<input type="email" name="email" data-rule="required;email">
<label>Password</label>
<input type="password" name="pwd" data-rule="required;length(6~16)">
</form>
参考DOM 绑定

(2)、JS 配置规则,无侵入 DOM

<form id="form1" action="register.php">
<label>Email</label>
<input type="email" name="email">
<label>Password</label>
<input type="password" name="pwd">
</form>
// 初始化验证
$('#form1').validator({
fields: {
'email': 'required;email',
'pwd': 'required;length(6~16)'
}
});

调用插件方法 .validator(),并使用 fileds 参数

当然,DOM 和 JS 两种方式也支持同时使用,你也可以通过 DOM 绑定规则,然后使用 js 初始化。

4. 提交表单

1.nice-validator 一旦初始化就会阻止表单被提交,直到表单规则全部验证通过。

2.如果传递了valid参数回调或者valid.form事件,表单即使验证通过也不会被提交,而是由valid参数和valid.form事件接管。然后你需要自己决定如何提交表单。

方式一:点击提交按钮,表单验证通过后自动原生方式提交

<form id="form1" action="register.php">
<label>Email</label>
<input type="email" name="email" data-rule="required;email">
<label>Password</label>
<input type="password" name="pwd" data-rule="required;length(6~16)">
<button type="submit">提交</button>
</form>

方式二:使用验证通过回调(参考:valid

$('#form1').validator({
valid: function(form) {
// do something
// use native submit.
form.submit();
}
});

示例三:绑定表单验证通过的事件(参考:valid.form事件

$('#form1').on('valid.form', function(e){
// You can do something, then submit form by native
// this.submit();
// or use ajax submit
$.post("path/to/server", $(this).serialize())
.done(function(d){
// some code
});
});

Nice Jquery Validator 快速上手的更多相关文章

  1. 快速上手seajs——简单易用Seajs

    快速上手seajs——简单易用Seajs   原文  http://www.cnblogs.com/xjchenhao/p/4021775.html 主题 SeaJS 简易手册 http://yslo ...

  2. 快速上手RaphaelJS-Instant RaphaelJS Starter翻译(一)

       (目前发现一些文章被盗用的情况,我们将在每篇文章前面添加原文地址,本文源地址:http://www.cnblogs.com/idealer3d/p/Instant_RaphaelJS_Start ...

  3. knockoutJS 快速上手

    翻译:Knockout 快速上手 - 3: knockoutJS 快速上手 许多时候,学会一种技术的有效方式就是使用它解决实际中的问题.在这一节,我们将学习使用 Knockout 来创建一个常见的应用 ...

  4. jquery validator

    jQuery.validate是一款非常不错的表单验证工具,简单易上手,而且能达到很好的体验效果,虽然说在项目中早已用过,但看到这篇文章写得还是不错的,转载下与大家共同分享. 一.用前必备 官方网站: ...

  5. 自定义表单验证--jquery validator addMethod的使用

    原文地址:jquery validator addMethod 方法的使用作者:蜡笔小玄 jQuery.validate是一款非常不错的表单验证工具,简单易上手,而且能达到很好的体验效果,虽然说在项目 ...

  6. npm、webpack、vue-cli 快速上手

    npm+webpack+vue-cli快速上手   Node.js   npm 什么是Node.js  以及npm 简单的来说 Node.js 就是运行在服务端的JavaScript,基于Chrome ...

  7. 快速上手 Echarts

    最近使用到了 百度的 Echarts 数据可视化工具,这里简单介绍如何快速上手. 一.下载 这里选择目前最新版本,4.2.1 地址:https://github.com/apache/incubato ...

  8. 【Python五篇慢慢弹】快速上手学python

    快速上手学python 作者:白宁超 2016年10月4日19:59:39 摘要:python语言俨然不算新技术,七八年前甚至更早已有很多人研习,只是没有现在流行罢了.之所以当下如此盛行,我想肯定是多 ...

  9. 快速上手Unity原生Json库

    现在新版的Unity(印象中是从5.3开始)已经提供了原生的Json库,以前一直使用LitJson,研究了一下Unity用的JsonUtility工具类的使用,发现使用还挺方便的,所以打算把项目中的J ...

随机推荐

  1. DPDK 无锁队列Ring Library原理(学习笔记)

    参考自DPDK官方文档原文:http://doc.dpdk.org/guides-20.02/prog_guide/ring_lib.html 针对自己的理解做了一些辅助解释. 1 前置知识 1.1 ...

  2. Fabric进阶(二)—— 在已有组织中增加节点

    fabric网络在创建时就已经确定了初始的节点数量,而在实际应用场景中可能会需要在某个组织中动态增加节点.这里以balance-transfer v1.0为例(2 Org,4 Peer),介绍如何在o ...

  3. Fabric CA的部署与使用

    Fabric CA是Hyperledger Fbric的证书认证中心,提供以下功能:用户信息的登记与注册,数字证书的颁发与管理. 前言 之前使用CA服务一直是在docker容器中运行下载好的CA镜像, ...

  4. PAT-1132 Cut Integer (整数分割)

    Cutting an integer means to cut a K digits long integer Z into two integers of (K/2) digits long int ...

  5. 【Redis】Hash常见应用场景 - 电商购物车

    电商购物车 以用户id为key 商品id为field 商品数量为value 购物车操作 [key(用户id),field(商品id),value(数量)] 添加商品 -> hset cart: ...

  6. Java——字符串排序

    import java.util.ArrayList; import java.util.Collections; import java.util.List; public class Test { ...

  7. mybatis是怎样炼成的

    前言 一些个人感受:不管分析什么源码,如果我们能摸索出作者的心路历程,跟着他的脚步一步一步往前走,这样才能接近事实的真相,也能更平滑更有趣的学习到知识.跟福尔摩斯探案一样,作者都经历了些什么,为什么他 ...

  8. ubuntu部署TimescaleDB

    系统环境: ubuntu16.04 PostgreSQL 版本: 12 注意:TimescaleDB 需要PostgreSQL 11.4+或12.0+.不再支持PostgreSQL 9.6.3+和10 ...

  9. 安卓到底是不是Linux

    有人说安卓就是 Linux,也有人说安卓是安卓.Linux 是 Linux,两者没什么关系,还有人说安卓用的是 Linux 的内核,那么它们之间到底是什么关系呢.要想得到这个问题的答案,我们要先弄清楚 ...

  10. [书籍分享]0-008.商业模式新生代[Business Model Generation]

    封面 内容简介 <商业模式新生代>内容简介:当你愉快的看完第一章:商业模式画布,赫然发现这些构成要素全都交织成一幅清晰的图像在脑海中呈现,它们如何互相影响.如何交互作用全都历历在目.利用商 ...