主要理由有以下几点:
1、[b]拖控件太麻烦[/b],这个是微软控件的常用方式,你要使用一个控件你得从工具栏中拖到页面里(当然你也可以不拖手写)。
2、[b]必须指定验证对象[/b],验证控件与其他textbox,dropdownlist控件不同的是它是验证其他控件的输入是否有效的,所以必须指定所验证的对象。
3、[b]影响整个页面美观[/b],像一些管理系统总是需要进行大量的用户输入验证,所以就可能导致一个页面上有几十个验证控件严重影响了原来页面里的东西,看起来十分不舒服。
4、[b]ajax验证不方便[/b],现在的系统越来越注重客户的用户体验,所以ajax验证必不可少,但是微软的验证控件并没有提供ajax验证(当然你也可以通过微软的UpdatePanel来进行),需要自己去扩展。
说了上面那么多,我只是表明我的意思,微软的验证控件不太好用,所以这时候我就在想有没一些好用点的验证控件呢?
有2个方法:1、自己编写一个(考虑到自己水平还没那么高,想想还是算了)
2、去找一个已经完善的验证控件(这个比较靠谱,毕竟我做不到,别人还是能做到的)
所以按照我的要求:1、不用拖控件
2、不影响页面代码
3、简单的AJAX验证
去网络搜寻找到了2种类型的:1、自己编写的ASP.NET验证控件,虽然封装了比较多的功能但是还是满足不了我需求
2、javascript类型的验证函数库,这个比较靠谱,
[b]毕竟js可以和页面代码分离(不影响页面代码),只需要调用函数库里的验证代码就可以进行指定对象的验证了(不用拖控件),同时ajax本质还是要靠javascript来调用(AJAX验证)[/b]
所以我根据上面第2条线索就搜索使用javascript编写的验证库——jQuery.Validate,这个验证库是属于jQuery的插件,是由[url=http://bassistance.de/]bassistance.de[/url]编写的,[url=http://bassistance.de/]bassistance.de[/url]还提供许多jQuery其他插件,如[url=http://bassistance.de/jquery-plugins/jquery-plugin-accordion/]Accordion[/url],[url=http://bassistance.de/jquery-plugins/jquery-plugin-autocomplete/]Autocomplete[/url](我的[url=http://www.cnblogs.com/kyo-yo/archive/2010/05/14/My-jQuery-AutoComplete.html]使用jQuery.AutoComplete完成仿淘宝商品搜索功能(改进了键盘上下选择体验)[/url]就是基于这个autocomplete编写的),[url=http://bassistance.de/jquery-plugins/jquery-plugin-tooltip/]Tooltip[/url]等等(具体的可以上他们的网站查看)。
决定使用jQuery.Validate首先下载其JS插件:
[quote]
进入[url=http://bassistance.de/jquery-plugins/jquery-plugin-validation/]http://bassistance.de/jquery-plugins/jquery-plugin-validation/[/url]选择DownLoad下载,里面包含了许多示例可供我们学习
[/quote]
接下来我们就开始正式使用了,建立一个基本的网站,建立好一个母版页(这边使用母版页是因为具体的一些项目中都会有一个母版页来存放一些公用的东西,这边为了模拟一个真实的环境,所以建立母版页,如果觉得不需要可以不建立直接建立页面即可),然后把jQuery和jQuery.Validate都引入母版页:
<script src='<%= Page.ResolveClientUrl("~/scripts/jquery-1.4.1.js") %>' type="text/javascript"></script>
<script src='<%= Page.ResolveClientUrl("~/scripts/jquery.validate1.js") %>' type="text/javascript"></script>
[quote]
[b]小技巧[/b]:与一般的引用不同,我这边把脚本的路径采用Page.ResolveClientUrl进行获取,由于在一些项目开发中,不同模块的代码会分不同的目录来操作,而母版页一半是在网站的根目录所以为了保证所有页面的基本都可以引用到,所以需要将路径进行重新获取([b]
不过这样做也有不好之处就是这样无法在后台的代码中动态为<header>添加东西,编译器会报错,解决办法是在<header>中放入一个literal控件,在后台代码里重新拼字符串赋给literal[/b])。
[/quote]
在引用完基本所需的脚本后就在母版页中添加脚本来进行验证。
[quote]
[b]jQuery.Validate是监控form,在任何提交表单的操作前jQuery.Validate都会检测表单里的输入项是否满足规则,满足才允许提交。所以需[/b]
要在jQuery(document).ready()时为form进行验证注册
[/quote]
具体代码如下:
[url=http://xiazai.jb51.net/201006/yuanma/jQueryValidate.rar]点我下载 [/url]
作者:[url=http://kyo-yo.cnblogs.com/]kyo-yo[/url]