九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
JSClientValidator-客戶端javascript驗證新模式
 JSClientValidator-客戶端javascript驗證新模式

JSClientValidator-客戶端javascript驗證新模式

2005-09-21

在客戶端控件javascript驗證模式中,我已經(jīng)介紹了當(dāng)前大量在web上用于客戶端控件驗證的函數(shù)式驗證模式,也簡單的提出了使用封裝的javascript類驗證的方法。這次,我要向大家介紹的是如何使用JSClientValidator類進行客戶端控件驗證、JSClientValidator的設(shè)計思想、優(yōu)點和進行自動化驗證的設(shè)想。

內(nèi)容
JSClientValidator的設(shè)計思想
如何使用JSClientValidator進行客戶端控件驗證
自動javascript驗證設(shè)想

JSClientValidator.js下載:/Files/chwkai/ClientValidator.rar

JSClientValidator的設(shè)計思想

JSClientValidator類是為了更簡化script驗證代碼而編寫的。首先來看一段經(jīng)典的函數(shù)式j(luò)avascript驗證代碼段:
 1 <script language="javascript">
 2 <!--
 3     function ValidateInput()
 4     {
 5         // fucCheckNull為判斷輸入字符串是否為空的函數(shù)
 6         if (fucCheckNull(document.getElementById("txbName").value) == true)
 7         {
 8             window.alert("請輸入用戶名");
 9             document.getElementById("txbName").focus;
10
11             return false;
12         }
13
14         //其他控件驗證代碼..
15         
16         return true;
17     }
18 -->
19 </script>
在處理不同的頁面時,開發(fā)人員必須在每個頁面都copy這樣的代碼。在上一篇文章中,我已經(jīng)說過這樣的模式不僅要重復(fù)的編寫類似的驗證代碼,代碼段結(jié)構(gòu)差,而且為了實現(xiàn)錯誤提示,必須在每個if段添加上focus和alert代碼。

下面是一段采用JSClientValidator類進行驗證的代碼段,可以看出驗證類的設(shè)計思想
 1 <script language="javascript">
 2         <!--
 3             function ValidateInput()
 4             {
 5                 var validator = new ClientValidator();
 6                 var bValid = false;
 7                 
 8                 // 驗證名稱是否為空
 9                 validator.AddEmpty(document.getElementById("txbName"), null, "名稱不能為空");
10                 
11                 // 驗證備注是否為空,且長度是否合法
12                 validator.AddLength(
13                     document.getElementById("txbRemark"), null, true, "備注不能為空",
14                     10, 300, "備注長度應(yīng)在10-300字內(nèi)"
15                     );
16                 
17                 bValid = validator.RunValidate();
18                 
19                 if (bValid == false)
20                 {
21                     // 提示錯誤信息
22                     window.alert(validator.lastErrorMessage);    
23                     // 定位自出錯控件
24                     validator.lastErrorControl.focus();
25                 }
26             }
27             -->
28         </script>
通過AddXXX方法,把相應(yīng)類型的驗證項加到驗證隊列中,最后運行RunValidate()進行批量認證,返回控件驗證是否合法。并且由lastErrorControl和lastErrorMessage可以得到出錯的控件和相應(yīng)的錯誤信息。


通過對開發(fā)過程中的javascript驗證代碼進行統(tǒng)計,最常進行的驗證是“xxx輸入值不能為空”,而且其他格式的校驗通常是以“非空”為前提的。因此,JSClientValidator中保持著兩個Array,并且把“不能為空”驗證(簡稱EmptyValidate)作為第一項驗證。

1、控件數(shù)組:保存著所有待驗證的控件
 1 // 控件數(shù)組
 2 this.Controls = new Array();
 3
 4
 5 /**
 6 * 控件類
 7 *
 8 * @param ctl        控件對象
 9 * @param strValue    控件值,為null時由控件對象的value屬性獲取
10 * @param bCheckEmpty    是否進行為空判斷
11 * @param strErrorMessage為空時提示的錯誤信息,bCheckEmpty==false時可為null
12 *
13 * 創(chuàng)建人:陳文凱
14 * 創(chuàng)建日期:2005年9月12日
15 * 修改人:
16 * 修改日期:
17 **/
18 function ControlItem(ctl, strValue, bCheckEmpty, strErrorMessage)
19 {
20     this.Control = ctl;
21     this.Value = (strValue == null ? ctl.value : strValue);
22     this.CheckEmpty = bCheckEmpty;
23     this.Message = strErrorMessage;
24 }
25
26 /**
27 * 添加控件對象
28 *
29 * @param ctl            控件對象
30 * @param strValue        控件輸入值
31 * @param bCheckEmpty    是否執(zhí)行輸入值非空校驗
32 * @param strErrorMessage當(dāng)輸入值為空時的提示信息
33 * @return        控件對象在控件數(shù)組中的下標(biāo)
34 *
35 * 創(chuàng)建人:陳文凱
36 * 創(chuàng)建日期:2005年9月12日
37 * 修改人:
38 * 修改日期:
39 **/
40 function AddControl(ctl, strValue, bCheckEmpty, strErrorMessage)
41 {
42     var index = this.Controls.length;
43     var ctlItem = new ControlItem(ctl, strValue, bCheckEmpty, strErrorMessage);
44     this.Controls[index] = ctlItem;
45     
46     return index;
47 }
當(dāng)執(zhí)行驗證時,先遍歷Control數(shù)組,對那些需要進行EmptyValidate驗證的控件進行驗證。若驗證通過,在執(zhí)行其他各種驗證項的驗證。

2、驗證項數(shù)組:保存控件的驗證方式的數(shù)組,下面的代碼演示了可接受的驗證方式。注意,其中還有一種驗證項類型為“自定義驗證項”,可以指定驗證函數(shù)進行驗證。類型驗證項(Type)可接受自定義的正則式為驗證格式。通過這兩種驗證類型+內(nèi)置的驗證類型(Empty,相等,長度)等,已經(jīng)能夠覆蓋web頁面上常用的驗證方式。
(1)驗證方式:
 1 /**
 2     * 驗證方式枚舉型定義
 3     *
 4     **/
 5     function ValidateTypeEnum()
 6     {
 7         // 判斷是否為空
 8         this.Empty = "client.empty";
 9         
10         // 判斷是否相等
11         this.Equal = "client.equal"
12         
13         // 判斷長度是否符合要求
14         this.Length = "client.length";
15         
16         // 判斷是否符合類型(包括以下定義的數(shù)字-時間)
17         this.Type = "client.Type";
18         
19         // 判斷是否為數(shù)字
20         this.Digit = "client.digit";
21         
22         // 判斷是否整數(shù)
23         this.Integer = "client.int";
24         
25         // 判斷是否正整數(shù)
26         this.Unsigned = "client.uint";
27         
28         // 判斷是否email
29         this.Email = "client.email";
30         
31         // 判斷是否日期,格式為yyyy-MM-dd
32         this.Date =    "client.date";
33         
34         // 判斷是否為時間,格式為yyyy-MM-dd hh:mm:ss
35         this.Time =    "client.time";
36         
37         // 自定義驗證項
38         this.Extend = "client.extend";
39&nb% 
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
獲取多個RadioButton按鈕中選中的值
Winform 讓跨線程訪問變得更簡單
C# WINFORM 控件雙向綁定少為人知的秘密
Access修改列表框中指定行的數(shù)據(jù)
Dwr教程(一)之用戶名驗證
多附件上傳控件plupload的使用心得
更多類似文章 >>
生活服務(wù)
熱點新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服