天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

使用jQuery.Validate進(jìn)行客戶端驗(yàn)證(初級(jí)篇) 不使用微軟驗(yàn)證控件的理由

主要理由有以下幾點(diǎn):

1、拖控件太麻煩,這個(gè)是微軟控件的常用方式,你要使用一個(gè)控件你得從工具欄中拖到頁面里(當(dāng)然你也可以不拖手寫)。

2、必須指定驗(yàn)證對(duì)象,驗(yàn)證控件與其他textbox,dropdownlist控件不同的是它是驗(yàn)證其他控件的輸入是否有效的,所以必須指定所驗(yàn)證的對(duì)象。

3、影響整個(gè)頁面美觀,像一些管理系統(tǒng)總是需要進(jìn)行大量的用戶輸入驗(yàn)證,所以就可能導(dǎo)致一個(gè)頁面上有幾十個(gè)驗(yàn)證控件嚴(yán)重影響了原來頁面里的東西,看起來十分不舒服。

4、ajax驗(yàn)證不方便,現(xiàn)在的系統(tǒng)越來越注重客戶的用戶體驗(yàn),所以ajax驗(yàn)證必不可少,但是微軟的驗(yàn)證控件并沒有提供ajax驗(yàn)證(當(dāng)然你也可以通過微軟的UpdatePanel來進(jìn)行),需要自己去擴(kuò)展。

 

說了上面那么多,我只是表明我的意思,微軟的驗(yàn)證控件不太好用,所以這時(shí)候我就在想有沒一些好用點(diǎn)的驗(yàn)證控件呢?

有2個(gè)方法:1、自己編寫一個(gè)(考慮到自己水平還沒那么高,想想還是算了)

                2、去找一個(gè)已經(jīng)完善的驗(yàn)證控件(這個(gè)比較靠譜,畢竟我做不到,別人還是能做到的)

所以按照我的要求:1、不用拖控件

                       2、不影響頁面代碼

                       3、簡(jiǎn)單的AJAX驗(yàn)證

網(wǎng)絡(luò)搜尋找到了2種類型的:1、自己編寫的ASP.NET驗(yàn)證控件,雖然封裝了比較多的功能但是還是滿足不了我需求

2、Javascript類型的驗(yàn)證函數(shù)庫,這個(gè)比較靠譜,畢竟js可以和頁面代碼分離(不影響頁面代碼),只需要調(diào)用函數(shù)庫里的驗(yàn)證代碼就可以進(jìn)行指定對(duì)象的驗(yàn)證了(不用拖控件),同時(shí)ajax本質(zhì)還是要靠Javascript來調(diào)用(AJAX驗(yàn)證)

所以我根據(jù)上面第2條線索就搜索使用Javascript編寫的驗(yàn)證庫――jQuery.Validate,這個(gè)驗(yàn)證庫是屬于jQuery的插件,是由bassistance.de編寫的,bassistance.de還提供許多jQuery其他插件,如Accordion,Autocomplete(我的使用jQuery.AutoComplete完成仿淘寶商品搜索功能(改進(jìn)了鍵盤上下選擇體驗(yàn))就是基于這個(gè)autocomplete編寫的),Tooltip等等(具體的可以上他們的網(wǎng)站查看)。

決定使用jQuery.Validate首先下載其JS插件:

進(jìn)入http://bassistance.de/jquery-plugins/jquery-plugin-validation/選擇DownLoad下載,里面包含了許多示例可供我們學(xué)習(xí)

接下來我們就開始正式使用了,建立一個(gè)基本的網(wǎng)站,建立好一個(gè)母版頁(這邊使用母版頁是因?yàn)榫唧w的一些項(xiàng)目中都會(huì)有一個(gè)母版頁來存放一些公用的東西,這邊為了模擬一個(gè)真實(shí)的環(huán)境,所以建立母版頁,如果覺得不需要可以不建立直接建立頁面即可),然后把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進(jìn)行獲取,由于在一些項(xiàng)目開發(fā)中,不同模塊的代碼會(huì)分不同的目錄來操作,而母版頁一半是在網(wǎng)站的根目錄所以為了保證所有頁面的基本都可以引用到,所以需要將路徑進(jìn)行重新獲取(不過這樣做也有不好之處就是這樣無法在后臺(tái)的代碼中動(dòng)態(tài)為<header>添加?xùn)|西,編譯器會(huì)報(bào)錯(cuò),解決辦法是在<header>中放入一個(gè)literal控件,在后臺(tái)代碼里重新拼字符串賦給literal)。

在引用完基本所需的腳本后就在母版頁中添加腳本來進(jìn)行驗(yàn)證。 

jQuery.Validate是監(jiān)控form,在任何提交表單的操作前jQuery.Validate都會(huì)檢測(cè)表單里的輸入項(xiàng)是否滿足規(guī)則,滿足才允許提交。所以需

要在jQuery(document).ready()時(shí)為form進(jìn)行驗(yàn)證注冊(cè)

具體代碼如下:
復(fù)制代碼 代碼如下:
<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>

到這邊肯定會(huì)有人疑問了,為什么要把jQuery.Validate的代碼寫在頁面的<body>中,這點(diǎn)牽扯到驗(yàn)證規(guī)則制定和分組驗(yàn)證的方法將會(huì)在中級(jí)篇和高級(jí)篇中講解。
注冊(cè)完驗(yàn)證監(jiān)控后我們就可以開始編寫具體的驗(yàn)證代碼了,我們通過母版頁建立一個(gè)子頁面,在頁面里放幾個(gè)基本的輸入框代碼如下:
復(fù)制代碼 代碼如下:
<%@ Page Title="員工信息管理-初級(jí)驗(yàn)證" 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>

上面的代碼中我已經(jīng)完成了對(duì)用戶名,姓名,年齡,郵箱的驗(yàn)證了,不知道你發(fā)現(xiàn)了沒,就是在每個(gè)textbox中的class樣式,其中required表示必填,number表示必須是數(shù)字,email表示必須是電子郵件格式,如果寫成required email表示這個(gè)字段必須填寫同時(shí)必須是email格式。
怎么樣?是不是相當(dāng)?shù)暮?jiǎn)單,省去了拖控件,指定驗(yàn)證控件等

主站蜘蛛池模板: 亚洲综合中文字幕无线码 | 精品欧美一区二区三区久久久 | 久久综久久美利坚合众国 | 成年人免费在线视频观看 | 高清一区二区亚洲欧美日韩 | 午夜一级毛片看看 | 国产欧美一区二区三区在线看 | 最近中文字幕免费高清MV视频 | 在线电台收听 | japanese色系free日本 | tobu中国日本高清 | 美美哒高清在线播放8 | 91国在线视频 | 首页 国产 亚洲 中文字幕 | 印度最猛性ⅹxxxxx | 亚洲乱色视频在线观看 | 调教椅上的调教SM总裁被调教 | 国产网址在线观看 | 亚洲 日本 天堂 国产 在线 | 久久re视频这里精品09首页 | 国产午夜精品一区理论片飘花 | 精品伊人久久久 | 天天国产在线精品亚洲 | 97成人精品视频在线播放 | 国产精品7777人妻精品冫 | 麻豆国产成人AV在线 | 久cao在线香蕉 | 蜜桃麻豆WWW久久囤产精品免费 | 挺进老师的紧窄小肉六电影完整版 | 99re热视频这里只有精品 | 成人国产在线不卡视频 | 含羞草完整视频在线播放免费 | 国产成人精品一区二区三区视频 | 国产精品伊人 | 亚洲欧美日本国产在线观18 | 挠黑色超薄丝袜脚心vk40分钟 | 日日噜噜夜夜爽爽 | 人人射人人插 | 国产AV视频二区在线观看 | 超碰在线视频 免费 | 欧美一第一页草草影院 |