主要理由有以下几点:
1、拖控件太麻烦,这个是微软控件的常用方式,你要使用一个控件你得从工具栏中拖到页面里(当然你也可以不拖手写)。
2、必须指定验证对象,验证控件与其他textbox,dropdownlist控件不同的是它是验证其他控件的输入是否有效的,所以必须指定所验证的对象。
3、影响整个页面美观,像一些管理系统总是需要进行大量的用户输入验证,所以就可能导致一个页面上有几十个验证控件严重影响了原来页面里的东西,看起来十分不舒服。
4、ajax验证不方便,现在的系统越来越注重客户的用户体验,所以ajax验证必不可少,但是微软的验证控件并没有提供ajax验证(当然你也可以通过微软的UpdatePanel来进行),需要自己去扩展。
说了上面那么多,我只是表明我的意思,微软的验证控件不太好用,所以这时候我就在想有没一些好用点的验证控件呢?
有2个方法:1、自己编写一个(考虑到自己水平还没那么高,想想还是算了)
2、去找一个已经完善的验证控件(这个比较靠谱,毕竟我做不到,别人还是能做到的)
所以按照我的要求:1、不用拖控件
2、不影响页面代码
3、简单的AJAX验证
去网络搜寻找到了2种类型的:1、自己编写的ASP.NET验证控件,虽然封装了比较多的功能但是还是满足不了我需求
2、javascript类型的验证函数库,这个比较靠谱,毕竟js可以和页面代码分离(不影响页面代码),只需要调用函数库里的验证代码就可以进行指定对象的验证了(不用拖控件),同时ajax本质还是要靠javascript来调用(AJAX验证)
所以我根据上面第2条线索就搜索使用javascript编写的验证库——jQuery.Validate,这个验证库是属于jQuery的插件,是由bassistance.de编写的,bassistance.de还提供许多jQuery其他插件,如Accordion,Autocomplete(我的使用jQuery.AutoComplete完成仿淘宝商品搜索功能(改进了键盘上下选择体验)就是基于这个autocomplete编写的),Tooltip等等(具体的可以上他们的网站查看)。
决定使用jQuery.Validate首先下载其JS插件:
进入http://bassistance.de/jquery-plugins/jquery-plugin-validation/选择DownLoad下载,里面包含了许多示例可供我们学习
接下来我们就开始正式使用了,建立一个基本的网站,建立好一个母版页(这边使用母版页是因为具体的一些项目中都会有一个母版页来存放一些公用的东西,这边为了模拟一个真实的环境,所以建立母版页,如果觉得不需要可以不建立直接建立页面即可),然后把jQuery和jQuery.Validate都引入母版页:
팁: 일반적인 참고사항과 다르게 스크립트 경로를 얻기 위해 Page.ResolveClientUrl을 사용합니다. 왜냐하면 일부 프로젝트 개발에서는 서로 다른 모듈의 코드가 작동되기 때문입니다. 다른 디렉터리에 있고 마스터 페이지의 절반은 웹 사이트의 루트 디렉터리에 있으므로 모든 페이지를 참조할 수 있도록 하려면 경로를 다시 획득해야 합니다(. 그러나 다음에는 단점이 있습니다. 문제는 백그라운드 코드에서
에 항목을 동적으로 추가할 수 없다는 것입니다. 해결 방법은 ).에 문자열을 다시 조합하는 것입니다. 코드를 리터럴로 할당합니다.
기본 필수 스크립트를 인용한 후 마스터 페이지에 스크립트를 추가하여 확인합니다.
jQuery.Validate는 양식 제출 작업 전에 양식의 입력 항목이 규칙을 충족하는지 확인하고 요구 사항을 충족하는 경우에만 제출을 허용합니다. 그래서
jQuery(document).ready() 시 폼 확인 및 등록
구체적인 코드는 다음과 같습니다.