|
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都引入母版頁:
<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>
小技巧:與一般的引用不同,我這邊把腳本的路徑采用Page.ResolveClientUrl進行獲取,由于在一些項目開發中,不同模塊的代碼會分不同的目錄來操作,而母版頁一半是在網站的根目錄所以為了保證所有頁面的基本都可以引用到,所以需要將路徑進行重新獲取(不過這樣做也有不好之處就是這樣無法在后臺的代碼中動態為<header>添加東西,編譯器會報錯,解決辦法是在<header>中放入一個literal控件,在后臺代碼里重新拼字符串賦給literal)。
在引用完基本所需的腳本后就在母版頁中添加腳本來進行驗證。
jQuery.Validate是監控form,在任何提交表單的操作前jQuery.Validate都會檢測表單里的輸入項是否滿足規則,滿足才允許提交。所以需
要在jQuery(document).ready()時為form進行驗證注冊
具體代碼如下:
復制代碼 代碼如下:
<body>
<form id="form1" runat="server">
<div>
<ASP:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
</ASP:ContentPlaceHolder>
</div>
</form>
<script type="text/Javascript">
jQuery(document).ready(function() {
jQuery("#<%=form1.ClientID %>").validate();
});
</script>
</body>
到這邊肯定會有人疑問了,為什么要把jQuery.Validate的代碼寫在頁面的<body>中,這點牽扯到驗證規則制定和分組驗證的方法將會在中級篇和高級篇中講解。
注冊完驗證監控后我們就可以開始編寫具體的驗證代碼了,我們通過母版頁建立一個子頁面,在頁面里放幾個基本的輸入框代碼如下:
復制代碼 代碼如下:
<%@ Page Title="員工信息管理-初級驗證" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true"
CodeFile="Base.ASPx.cs" Inherits="_Base" %>
<ASP:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">
</ASP:Content>
<ASP:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
<table cellpadding="1" cellspacing="1" border="1" width="50%" align="center">
<tr>
<td>
用戶名
</td>
<td>
<ASP:TextBox ID="txtUid" runat="server" CssClass="required"></ASP:TextBox>
</td>
</tr>
<tr>
<td>
姓名
</td>
<td>
<ASP:TextBox ID="txtName" runat="server" CssClass="required"></ASP:TextBox>
</td>
</tr>
<tr>
<td>
年齡
</td>
<td>
<ASP:TextBox ID="TextBox1" runat="server" CssClass="number"></ASP:TextBox>
</td>
</tr>
<tr>
<td>
郵箱
</td>
<td>
<ASP:TextBox ID="TextBox2" runat="server" CssClass="email"></ASP:TextBox>
</td>
</tr>
<tr>
<td colspan="2" align="center">
<ASP:Button ID="Button1" runat="server" Text="提交" />
</td>
</tr>
</table>
</ASP:Content>
上面的代碼中我已經完成了對用戶名,姓名,年齡,郵箱的驗證了,不知道你發現了沒,就是在每個textbox中的class樣式,其中required表示必填,number表示必須是數字,email表示必須是電子郵件格式,如果寫成required email表示這個字段必須填寫同時必須是email格式。
怎么樣?是不是相當的簡單,省去了拖控件,指定驗證控件等
主站蜘蛛池模板:
永久免费精品精品永久-夜色
|
手机在线免费看毛片
|
99精品视频在线观看
|
精品性影院一区二区三区内射
|
伊人狠狠丁香婷婷综合尤物
|
日本xxxxxxx|
亚洲精品无码久久久久A片空
|
99热在线视频这里只精品
|
色多多污网站在线观看
|
国产精品免费小视频
|
国产一区内射最近更新
|
99精品国产高清自在线看超
|
伦理片92伦理午夜
|
第一次处破女完整版电影
|
在线免费中文字幕
|
亚洲AV成人片色在线观看网站
|
久久这里只有精品无码3D
|
久久精品综合网中文字幕
|
999国产高清在线精品
|
精品国产乱码久久久久久乱码
|
中文字幕本庄优花喂奶
|
亚洲 天堂 欧美 日韩 国产
|
日本一卡精品视频免费
|
野花日本免费完整版高清版动漫
|
国产三级在线精品男人的天堂
|
后入式啪gif动态图
后入式狂顶免费视频
|
99久久免费精品
|
日本xxxxx按摩19|
亚洲国产精品高清在线
|
91香蕉福利一区二区三区
|
综合一区无套内射中文字幕
|
被室友C哭调教双性
|
花蝴蝶高清在线视频免费观看
|
国产69精品久久久久无码麻豆
|
恋老视频 国产国佬
|
成人在无码AV在线观看一
|
伊人影院中文字幕
|
最新中文字幕在线视频
|
俄罗斯19girl video9
|
国产精片久久久久久婷婷
|
一级毛片皇帝 宫女
|