欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
[jQuery]使用jQuery.Validate進(jìn)行客戶(hù)端驗證(中級篇-上)——不使用微軟驗證控件的理由

[jQuery]使用jQuery.Validate進(jìn)行客戶(hù)端驗證(中級篇-上)——不使用微軟驗證控件的理由

    在上一篇使用jQuery.Validate進(jìn)行客戶(hù)端驗證(初級篇)中我介紹了為什么選用jQuery.Validate作為客戶(hù)端的理由,同時(shí)也介紹了jQuery.Validate的基本用法以及中文驗證消息的修改方法,今天的中級篇我將介紹下jQuery.Validate的一些常見(jiàn)的驗證的使用方法。

jQuery.Validate為我們提供了3種驗證編寫(xiě)方式,各有優(yōu)缺點(diǎn):

1、在input對象中書(shū)寫(xiě)class樣式指定驗證規則或屬性驗證規則:

如<input type=”text” class=”required”/>

最簡(jiǎn)單、最便捷,提示消息使用jQuery.Validate的內置的消息(自定義擴展驗證規則也屬于此項),但是由于是以樣式名的方式進(jìn)行驗證,導致了日后修改必須找到相應的input對象,同時(shí)無(wú)法使用高級驗證規則,具體說(shuō)明請向下看

2、同第1條,這種驗證規則方式也是在input對象中書(shū)寫(xiě)class樣式,只不過(guò)書(shū)寫(xiě)的方式改為了JSON格式,但是這種方式提供了自定義驗證消息的支持:

如<input type=”text” class="{required:true,minlength:5,,messages:{required:'請輸入內容'}”/>

簡(jiǎn)單、方便,但個(gè)人認為有點(diǎn)臃腫,還是和第1條一樣和相對應的input對象糾纏在一起,并且還增加消息自定義,使得input對象變的更大了,干擾了頁(yè)面代碼的閱讀,但可以使用高級驗證規則(實(shí)際就是將第3種JS以JSON的格式放到具體的class中

3、這種方式使用純JS的方式:

如:

$().ready(function() {
    $("#aspnetform").validate({
         rules: {
         name: "required",
         email: {
                 required: true,
                 email: true
         }

     })

})

很好的解決了HTML和驗證規則的分離,就是書(shū)寫(xiě)較為麻煩,需要單獨寫(xiě)JS腳本,但好處是可以統一驗證規范,將每個(gè)頁(yè)面的驗證規則都寫(xiě)在頭部的腳本中,方便日后維護。

注意:以上3種驗證方式的消息如果未指定都會(huì )默認調用內置的消息

在了解了jQuery.Validate為我們提供幾種驗證方式后,我們來(lái)具體分析下每個(gè)驗證方式:

第一種,在input對象中書(shū)寫(xiě)class樣式指定驗證規則或屬性驗證規則,可以將該input需要的規則一次性寫(xiě)在里面(具體見(jiàn)頁(yè)面Middle-1.aspx)。

如:

<asp:TextBox ID="txtAge" runat="server" class="required number" max="99" min="1"></asp:TextBox>

這段代碼的意思是必須輸入年齡字段,年齡必須是數字,同時(shí)必須在0-99范圍內,使用起來(lái)很方便寫(xiě)幾個(gè)屬性就可以搞定,可以根據需求自由的組合驗證規則。

但是就如上面說(shuō)的許多高級的驗證規則無(wú)法使用:

range(范圍驗證,這個(gè)就可以替代max,min),

rangeLength(長(cháng)度范圍驗證,可以替代maxLength,minLength),

equalTo(比較驗證,這個(gè)其實(shí)可以用,但是如果使用使用的是ASP.NET控件就不行,純HTML控件可以。

看下代碼,我想比較2次輸入的密碼是否一樣時(shí)理論上可以這么寫(xiě):

<asp:TextBox ID="txtRePwd" runat="server" TextMode="Password" CssClass="required" minlength="6" equalTo='#<%=txtPwd.ClientID %>'></asp:TextBox>

但是由于A(yíng)SP.NET控件的機制問(wèn)題,會(huì )把#<%=txtPwd.ClientID %>進(jìn)行轉譯成#<%=txtPwd.ClientID %>這樣就導致了要比較的ID無(wú)法正確獲取,導致驗證不成功。

但如果這么寫(xiě)就不會(huì )出現問(wèn)題:

<input type=”password” class=”required” minlenght=”6” equalTo=”txtPwd”/>

 

第二種,同樣書(shū)寫(xiě)class驗證規則,只不過(guò)以JSON格式書(shū)寫(xiě),可自定義驗證消息,高級驗證功能,JS驗證規則的簡(jiǎn)化版(具體見(jiàn)頁(yè)面Middle-2.aspx):

這種方式由于要以JSON的格式來(lái)編寫(xiě)規則,所以需要引用個(gè)單獨的JS文件:jquery.metadata.js

具體書(shū)寫(xiě)代碼格式如下:

<asp:TextBox ID="txtUid" runat="server" CssClass="{required:true,messages:{required:'不輸入用戶(hù)名你怎么登陸?'}}"></asp:TextBox>

<asp:TextBox ID="txtPwd" TextMode="Password" runat="server" CssClass="{required:true,minlength:6,messages:{required:'你不輸入密碼怎么行呢?',minlength:'密碼太短啦至少6位'}}"></asp:TextBox>

具體意思分別是:必須輸入用戶(hù)名和必須輸入密碼同時(shí)長(cháng)度至少6位。

注意:這邊我重新定義了驗證信息,這樣就不用使用原先在jQuery.Validate中的內置的通用消息,可以指定更加人性化的消息,看下截圖(可以對比下內置提示信息和自定義提示信息):

 

使用了這種方式后,我們就可以使用第一種驗證方式中無(wú)法使用的一些驗證規則了,如range:

<asp:TextBox ID="txtAge" runat="server" class="{required:true,number:true,range:[1,99],messages:{range:'您的年齡有問(wèn)題把,得在1-99歲之間哦'}}"></asp:TextBox>

同樣我這邊也修改了具體具體的消息,而rangelength的用法也與這個(gè)類(lèi)似我就不演示了。

同樣很遺憾的,由于A(yíng)SP.NET控件特性問(wèn)題equalTo在這也不能使用,HTML還是有效的。

 

 

第三種,使用JS進(jìn)行規則驗證,可以使用所有驗證規則,并且可以試HTML代碼和驗證規則很好的分離,方便日后維護(具體代碼見(jiàn)Middle-3.aspx)

這種方式需要手寫(xiě)JS來(lái)編寫(xiě)驗證的規則,具體的格式如下:

01 function InitRules() {
02     opts = {
03          rules:
04          {
05                 <%=txtUid.UniqueID %>: 
06                 {
07                     required: true
08                 },
09                 <%=txtPwd.UniqueID %>: 
10                 {
11                     required: true,
12                     minlength: 6
13                 },
14                 <%=txtRePwd.UniqueID %>: 
15                 {
16                     required: true,
17                     minlength: 6,
18                     equalTo:"#<%=txtPwd.ClientID %>"
19                 },
20                 <%=txtName.UniqueID %>: 
21                 {
22                     required: true
23                 },
24                 <%=txtAge.UniqueID %>: 
25                 {
26                     required: true,
27                     number: true,
28                     range: [1,99]
29                 },
30                 <%=txtEmail.UniqueID %>: 
31                 {
32                     email: true
33                 }
34          },
35          messages:
36          {
37                 <%=txtPwd.UniqueID %>:
38                 {
39                     required:"不輸入用戶(hù)名你怎么登陸?"
40                 },
41                 <%=txtPwd.UniqueID %>: 
42                 {
43                     required:"你不輸入密碼怎么行呢?",
44                     minlength:"密碼太短啦至少6位"
45                 },
46                 <%=txtAge.UniqueID %>: 
47                 {
48                     range:"您的年齡有問(wèn)題把,得在1-99歲之間哦"
49                 }
50          }
51     }
52 }

這種方式雖然可以使用所有的高級功能,驗證規則也分離出來(lái)了,但是就是書(shū)寫(xiě)起來(lái)不簡(jiǎn)便,所以我的個(gè)人建議是如果不是要求很高的情況下,可以將如required,number,email等常規的簡(jiǎn)單的驗證規則使用第1種驗證方式,方便、快捷,只有當第1種無(wú)法實(shí)行的時(shí)候才使用這種方式,如equalTo(比較驗證),remote(AJAX驗證)等,這樣相互結合效率是最高的。

到這邊可能會(huì )有人奇怪了,因為在上面介紹這種JS驗證方式的的時(shí)候有個(gè)小例子,需要把規則放入jQuery.Validate的方法中,否則制定的驗證規則是無(wú)效的。

這里我就要說(shuō)明下了,因為,這個(gè)例子中我使用的模擬一個(gè)項目的形式編寫(xiě)的,頁(yè)面全部套用母版頁(yè),所以為了滿(mǎn)足jQuery.Validate攔截form表單的方式,所以我在母版頁(yè)中的<header>定義了一個(gè)變量用來(lái)存放每個(gè)頁(yè)面中定義的驗證規則:var opts = null;,這樣根據HTML從上到下的解析方式首先opts被定義,然后在每個(gè)子頁(yè)面被賦值,最后再返回母版頁(yè)中的jQuery.Validate初始攔截form方法:

jQuery(document).ready(function() {
    if (opts != undefined || opts != null) {
        jQuery("#<%=form1.ClientID %>").validate(opts);
    } else {
        jQuery("#<%=form1.ClientID %>").validate();
    }
});

如果在子頁(yè)面里制定了規則,則按規則驗證,沒(méi)有規則則直接驗證(這邊的opts中包含的規則和具體的class規則不會(huì )有沖突,你可以將一部分規則寫(xiě)在opts中(remote,equalTo),另外的規則寫(xiě)在class中(required,number等)

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
jquery 之validate 筆記(轉載)
CKEditor無(wú)法驗證的解決方案[js驗證+jQuery Validate驗證]
.Net驗證控件與自定義驗證合作無(wú)間
Asp.net+Jquery實(shí)現用戶(hù)信息異步驗證
.net中禁用TextBox和Input框的粘貼功能
ASP.NET驗證控件之CustomValidator
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久