jquery.validate.unobtrusive的使用

 

应用

一、引入 <script src="Scripts/jquery-1.7.1.min.js"></script>

<script src="Scripts/jquery.validate.js"></script>

<script src="Scripts/jquery.validate.unobtrusive.js"></script>

二、1)在需要验证的input标签上添加属性data-val="true",即表示改标签参加验证。

2)继续在标签上添加属性data-val-required="用户名不能为空!",表示此标签的内容不能为空的验证。

三、显示验证信息,有两种方式显示。一种是集中显示验证信息,另一种是在具体位置显示相对应的验证信息。

1)在需要显示验证信息的位置写入以下代码

复制代码
1   <div class="validation-summary-valid" data-valmsg summary="true">
2             <ul>
3                 <li style="display: none"></li>
4             </ul>
5         </div>
复制代码

2)相对应的验证信息显示

1   <input type="text"  name="cus" id="cus" data-val="true" data-val-required="用户名不能为空!" /> <span data-valmsg-for="cus" data-valmsg-replace="true"></span>

以上三部即可完成最基本简单的验证。

如需添加标签的其他验证只需重复第二部即可。

验证规则

一、简单规则

刚才我们知道了data-val-required是必输字段,简单的验证规则如下

1.data-val-required 必输字段  
2.data-val-email 必须输入正确格式的电子邮件 
3.data-val-url 必须输入正确格式的网址 
4.data-val-date 必须输入正确格式的日期 
5.data-val-digits: 必须输入正整数
6.data-val-number:必须输入整数

二、复杂一点的规则

我们知道了简单基本的验证规则,但这些不能满足我们的需求。

1.比如注册确认密码的验证
(data-val-equalto="密码和确认密码不匹配。" data-val-equalto-other="pwd")
这时只设置一个属性不能满足我们的需求。因为我们要找到另一个文本框的值。data-val-equalto-other对应另一个文本框的name的值

复制代码
 1  <div class="control-group">2        <label class="control-label">3                *密码4         </label>5       <div class="controls">6              <input type="password" name="pwd" id="pwd" data-val="true" data-val-required="密码不能为空!" />7              <span data-valmsg-for="pwd" data-valmsg-replace="true"></span>8         </div>9   </div>
10  <div class="control-group">
11          <label class="control-label">
12                  *确认密码
13            </label>
14      <div class="controls">
15                  <input type="password" name="Password1" id="Password1" data-val="true" data-val-required="确认密码不能为空!" data-val-equalto="密码和确认密码不匹配。" data-val-equalto-other="pwd" />
16                   <span data-valmsg-for="Password1" data-valmsg-replace="true"></span>
17       </div>
18</div>
复制代码

2.data-val-length 字符的长度 ,data-val-length-max表示最大字符数 data-val-length-min 表示最小字符数

复制代码
1 <div class="control-group">
2                 <label class="control-label">
3                     *密码
4                 </label>
5                 <div class="controls">
6                     <input type="password" name="pwd" id="pwd" data-val="true" data-val-required="密码不能为空!" data-val-length-max="100" data-val-length-min="6" data-val-length="密码必须至少包含 6 个字符。" />
7                     <span data-valmsg-for="pwd" data-valmsg-replace="true"></span>
8                 </div>
9             </div>
复制代码

3.data-val-accept 正确的后缀名,data-val-accept-exts 符合后缀名的集合
data-val="true" data-val-required="不能为空!" data-val-accept="后缀名为.jpg、.gif或.png" data-val-accept-exts="jpg|gif|png"

4.data-val-range 数字的大小范围,data-val-range-min 最小数 data-val-range-max 最大数

三、再复杂一点的规则(正则)

以上的验证规则需要两个或者两个以上的属性才能完成验证,但是这些仍然不能满足我们的需求。比如手机格式的验证,这些我们可能需要正则来辅助我们验证

data-val-regex表示正则的验证方式,data-val-regex-pattern正则的表达式

复制代码
1   <div class="controls">
2          <input type="text" id="regex" name="regex" data-val="true" data-val-required="不能为空!" data-val-regex="手机格式不正确" data-val-regex-pattern="(13[0-9]|15[012356789]|18[0236789]|14[57])[0-9]{8}" />
3          <span data-valmsg-for="regex" data-valmsg-replace="true"></span>
4     </div>
复制代码

 

四、再再复杂一点的规则(ajax)

有点时候我们需要ajax来验证规则,比如我们常见的检查用户名是否可用

data-val-remote可以帮助我们实现功能,data-val-remote-url表示ajax验证的路径,直接返回true or false 即可完成验证。

1  <div class="controls">
2            <input type="text" name="loginName" data-val="true" data-val-required="登录名不能为空!" data-val-remote="已经被注册,请选择其他登录名称!" data-val-remote-url="checkuserid.aspx" />
3            <span data-valmsg-for="loginName" data-valmsg-replace="true"></span>
4   </div>

五、终极验证规则(自定义验证规则)

虽然以上验证规则足够可以我们使用,但是可能需要我们自定义的验证规则。
熟悉jQuery validate的验证方式知道可以添加自定义的验证规则,因为此验证规则是对jQuery validate的扩展,所以需要在jQuery validate的基础上进行自定义验证。

1)添加jQuery validate自定义验证方法

判断值是否等于“123”

1  $.validator.addMethod('notequal', function (value, element, params)
2     {
3             return value != "123";
4    });

2)添加扩展方法的自定义方法

复制代码
1  $.validator.unobtrusive.adapters.add("notequal", function (options)
2         {
3             options.rules["notequal"] = {
4                
5             };
6             options.messages["notequal"] = options.message;
7         });
复制代码

3)data-val-notequal="姓名不能等于 123"

 

1   <input type="text" value="" name="cus" id="cus" data-val="true" data-val-notequal="姓名不能等于 123"/>
2    <span data-valmsg-for="cus" data-valmsg-replace="true"></span>

这样即可完成简单的自定义验证规则。

有的时候我们需要指定参数来实现自定义验证规则

 

复制代码
 1  $.validator.addMethod('notequal', function (value, element, params)2         {3             return value != params["va"];4         });5 6         $.validator.unobtrusive.adapters.add("notequal", ["va"], function (options)7         {8             options.rules["notequal"] = {9                 va: options.params.va
10             };
11             options.messages["notequal"] = options.message;
12         });
复制代码
1    <input type="text" value="" name="cus" id="cus" data-val="true" data-val-notequal="姓名不能够等于 123" data-val-notequal-va="123"/>
2    <span data-valmsg-for="cus" data-valmsg-replace="true"></span>

这样就可以完成比较复杂的自定义验证规则。

转载于:https://www.cnblogs.com/weiweithe/p/5268654.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/272216.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux操作系统六大优点

❤️作者主页&#xff1a;IT技术分享社区 ❤️作者简介&#xff1a;大家好,我是IT技术分享社区的博主&#xff0c;从事C#、Java开发九年&#xff0c;对数据库、C#、Java、前端、运维、电脑技巧等经验丰富。 ❤️个人荣誉&#xff1a; 数据库领域优质创作者&#x1f3c6;&#x…

[webview] 放大缩小的问题

http://www.cocoachina.com/bbs/read.php?tid33249转载于:https://www.cnblogs.com/zxykit/p/5274831.html

进程间通信IPC(一)(半双工管道和消息队列)

引言&#xff1a; 之前学习的进程之间交换信息的方法只能由fork或exec传送打开文件&#xff0c;或者文件系统。但是这种通讯方式有局限性&#xff0c;接下来将说明进程之间相互通信的其他技术——IPC(InterProcessCommunication)&#xff0c;过去UNIX系统IPC是各种进程间通信方…

Seata相关概念

相关概念 XID&#xff1a;一个全局事务的唯一标识 Transaction Coordinator (TC)&#xff1a; 事务协调器&#xff0c;维护全局事务的运行状态&#xff0c;负责协调并驱动全局事务的提交或回滚&#xff08;可以理解为事务的协调者&#xff09;。 Transaction Manager (TM)&…

VSS配置

http://www.cnblogs.com/FreeDong/articles/2193151.html转载于:https://www.cnblogs.com/lacey/p/5275514.html

Program terminated with signal SIGSEGV, Segmentation fault.

问题&#xff1a; 在程序运行时出现了&#xff1a;Segmentation fault (core dumped)&#xff0c;分段故障(堆芯转储)也就是段错误。 我首先在一篇博客上面找到如何使用gdb调试&#xff1a; 1、首先使用ulimit -a查看你的core file size是否为0.如果不是的话就请跳到步骤3&am…

NFS简介

NFS 是Network File System的缩写&#xff0c;即网络文件系统。一种使用于分散式文件系统的协定&#xff0c;由Sun公司开发&#xff0c;于1984年向外公布。功能是通过网络让不同的机器、不同的操作系统能够彼此分享个别的数据&#xff0c;让应用程序在客户端通过网络访问位于服…

Php Laravel框架 多表关系处理 之 Eloquent一对多关系处理

Php Laravel框架 多表关系处理 之 Eloquent一对多关系处理 本博文主要介绍 Laravel 框架中 Eloquent 对一对多关系的处理以及在 Laravel Administrator(后台扩展包)中的应用。 您的数据库可能是彼此相关的。比方&#xff0c;一篇博客文章可能有很多评论&#xff0c;或者一个订…

进程间通信IPC(二)(共享内存、信号、信号量)

共享内存&#xff1a; 共享内存就是允许两个或多个进程共享一定的存储区。就如同 malloc() 函数向不同进程返回了指向同一个物理内存区域的指针。当一个进程改变了这块地址中的内容的时候&#xff0c;其它进程都会察觉到这个更改。因为数据不需要在客户机和服务器端之间复制&am…

分布式理论CAP定理

CAP原则又称CAP定理&#xff0c;指的是在一个分布式系统中&#xff0c; Consistency&#xff08;一致性&#xff09;、 Availability&#xff08;可用性&#xff09;、Partition tolerance&#xff08;分区容错性&#xff09;&#xff0c;三者不可兼得。 998年&#xff0c;加州…

xmlWriter 以UTF-8格式写xml问题

dom4j中的XMLWriter提供以下几种构造方法&#xff1a; XMLWriter() XMLWriter(OutputFormat format) XMLWriter(OutputStream out) XMLWriter(OutputStream out, OutputFormat format) XMLWriter(Writer writer) XMLWriter(Writer writer, OutputFormat format) 最简单常…

linux线程(互斥锁、条件)

线程概念&#xff1a; 典型的UNIX/Linux进程可以看成只有一个控制线程&#xff1a;一个进程在同一时刻只做一件事情。有了多个控制线程后&#xff0c;在程序设计时可以把进程设计成在同一时刻做不止一件事&#xff0c;每个线程各自处理独立的任务。 进程是程序执行时的一个实例…

centos下防火墙设置

1、开启防火墙 systemctl start firewalld2、开放指定端口firewall-cmd --zonepublic --add-port8888/tcp --permanent命令含义&#xff1a; --zone #作用域 --add-port1935/tcp #添加端口&#xff0c;格式为&#xff1a;端口/通讯协议 --permanent #永久生效&#xff0c;没有…

linux网络编程、socket编程

进程间通信&#xff1a; 特点&#xff1a;依赖于内核&#xff0c;造成缺陷——无法实现多机通信。 网络&#xff1a; 地址&#xff1a;由IP地址&#xff08;IP地址是IP协议提供的一种统一的地址格式&#xff0c;它为互联网上的每一个网络和每一台主机分配一个逻辑地址&#xf…

【Python】Python Mako模板使用

参考资料&#xff1a; Mako Templates for Python官网&#xff1a;http://www.makotemplates.org/ Python模板库Mako的用法&#xff1a;http://my.oschina.net/u/877170/blog/290438 Mako 1.0.4 Documentation&#xff1a;http://docs.makotemplates.org/en/latest/usage.html#…

简单的ftp服务器(客户端、服务器端、socket)

查看本机IP地址&#xff1a; 127.0.0.1 服务器功能&#xff1a; 可以获取服务器文件使用get指令可以展示服务器有哪些文件使用ls指令进入服务器某个文件夹使用指令cd文件夹名称上传本地文件到服务器&#xff0c;使用指令putpwd可以查看客户端在当前服务器的位置 客户端本地…

JavaScript 全局对象

JavaScript 全局对象 全局属性和函数可用于所有内建的 JavaScript 对象。 顶层函数&#xff08;全局函数&#xff09; 函数描述decodeURI()解码某个编码的 URI。decodeURIComponent()解码一个编码的 URI 组件。encodeURI()把字符串编码为 URI。encodeURIComponent()把字符串编码…