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>
这样就可以完成比较复杂的自定义验证规则。
jquery.validate.unobtrusive的使用的更多相关文章
- 改写jquery.validate.unobtrusive.js实现气泡提示mvc错误
个人对于这个js.css不是很擅长,所以这个气泡提醒的样式网上找了下,用了这个http://www.cnblogs.com/wifi/articles/2918950.html当中的第一种写法. 对于 ...
- jquery.validate[.unobtrusive]和Bootstrap实现tooltip错误提示
类似的文章园子里已有,请看这里,个人感觉稍显复杂,日前也打算写一个简单的给项目用,一些关键点记录于此.最终效果如下: 后端使用Asp.net mvc5,前端框架有:jquery.validate.jq ...
- jQuery validate 根据 asp.net MVC的验证提取简单快捷的验证方式(jquery.validate.unobtrusive.js)
最近在学习asp.netMVC,发现其中的验证方式书写方便快捷,应用简单,易学好懂. 验证方式基于jQuery的validate 验证方式,也可以说是对jQuery validate的验证方式的扩展, ...
- 360浏览器下jquery.validate.unobtrusive的日期验证问题
今天在招聘频道(job.cnblogs.com)遭遇这样一个问题——在360浏览器下,在一个表单验证中,虽然输入了有效的日期,却总是提示日期格式错误,见下图: 而在Chrome/Safari/Fire ...
- jquery.validate.unobtrusive.js插件作用
在 ASP.NET MVC 中启用 Unobtrusive JavaScript 功能,可以在运行时由服务器端根据Model中设置的验证规则,自动生成客户端验证js代码(结合jquery.valida ...
- .net MVC内置js验证 jquery.validate.unobtrusive.js重置验证操作(备忘,找了很多次了)
(function ($) { $.validator.unobtrusive.parseDynamicContent = function (selector) { //use the normal ...
- MVC3.0修改jquery.validate.unobtrusive.js实现气泡提示mvc错误
CSS部分 <style type="text/css"> .hide {display:none;} .poptip { position: absolute; to ...
- MVC的验证 jquery.validate.unobtrusive
jQuery validate 根据 asp.net MVC的验证提取简单快捷的验证方式(jquery.validate.unobtrusive.js) 2013-07-22 19:07 4568人阅 ...
- jquery.validate.unobtrusive
ASP.NET MVC Unobtrusive JavaScript 实现 onfocusout 验证, onfocusin 清除错误 在 ASP.NET MVC 中启用 Unobtrusive Ja ...
- jquery.validate.unobtrusive.js实现气泡提示mvc错误
改写jquery.validate.unobtrusive.js实现气泡提示mvc错误 个人对于这个js.css不是很擅长,所以这个气泡提醒的样式网上找了下,用了这个http://www.cnblog ...
随机推荐
- 三、python对字符串和集合的内存垃圾回收机制
变量声明: name1 = "andy" name2 = name1 这个时候我把name1的值给改成了“tom”,问现在name2的值是什么?为什么? 答:andy,因为你把 ...
- tensorflow运行时错误:服务似乎挂掉了,但是会立刻重启的.
以前在POD里跑起来,没问题的示例代码. 移到jupyter中,多给两个GPU,有时运行就会爆出这个错误: 于是,按网上的意见,暂时加了个使用GPU的指定, 暂时搞定. 如下红色部分. import ...
- python 验证码识别示例(五) 简单验证码识别
今天介绍一个简单验证的识别. 主要是标准的格式,没有扭曲和变现.就用 pytesseract 去识别一下. 验证码地址:http://wscx.gjxfj.gov.cn/zfp/webroot/xfs ...
- requests-html
目录 一 介绍 二 安装 三 如何使用requests-html 四 支持JavaScript 五 自定义User-Agent 六 模拟表单提交 七 支持异步请求 一 介绍 Python上有一个非常著 ...
- 总结:几种生成html格式测试报告的方法
写自动化测试时,一个很重要的任务就是生成漂亮的测试报告. 1.用junit或testNg时,可以用ant辅助生成html格式: <target name="report" d ...
- three.js 设置透明度
原文:https://www.cnblogs.com/amy2011/p/6148736.html 材质: 材质就像物体的皮肤,决定了几何体的外表,例如是否像草地/金属,是否透明,是否显示线框等 Th ...
- ESP8266 LUA脚本语言开发: 准备工作-官网获取LUA固件
前言 这节咱去官网上获取lua开发的固件. 官网下载 下面是我以前写的,咱不使用官网下载的固件,咱使用自己编译的固件.. 填写好自己的的邮箱地址,然后选择好自己需要的功能,一会编译好的固件就会发到您的 ...
- 微信小程序 scroll-view 横向滚动条 隐藏无效
看了许多网上教程说是添加如下样式可以解决,我加入到组件wxss中无效,加入全局wxss生效. 添加css代码如下: ::-webkit-scrollbar { ; ; color: transpare ...
- ASP.NET Core 简介
.NET Core 是 .NET Framework 的新一代版本,是微软开发的第一个具有跨平台 ( Windows.Mac OSX .Linux ) 能力的应用程序开发框 ASP.NET Core ...
- Linux终端图形库编程
/* *drawWin.c */ #include<stdio.h> #include<stdlib.h> #include<string.h> #include& ...