專利名稱:一種表單控件的驗證方法及裝置的制作方法
技術(shù)領(lǐng)域:
本申請涉及網(wǎng)絡(luò)技術(shù)領(lǐng)域,尤其涉及一種表單控件的驗證方法及裝置。
背景技術(shù):
網(wǎng)頁表單作為用戶向網(wǎng)絡(luò)側(cè)提交數(shù)據(jù)的第一層關(guān)口 ,其性能對用戶的交互 體驗有重要影響,因此,為了減少開發(fā)成本以及增強用戶體驗,對網(wǎng)頁表單的 驗證過程提出了越來越高的要求,從用戶角度而言,需要強大的表單驗證規(guī)貝'J, 并且不同用戶對表單驗證過程有不同的個性化需求,從開發(fā)者角度而言,希望 對表單驗證的配置過程盡可能簡單靈活。
JavaScript是目前較為常用的 一種基于對象的網(wǎng)頁腳本語言,通過引入 Prototype.js (JavaScript擴展類庫)以實現(xiàn)JavaScript面向?qū)ο蟮脑O(shè)計需求。同 時,為了盡可能地滿足用戶需求,開發(fā)者通過使用面向?qū)ο蟮乃枷雭碓O(shè)計 JavaScript驗證框架,例如,Rapid-Validation,該驗證框架為目前網(wǎng)絡(luò)上很常用 的JavaScript驗證框架,能夠支持多個瀏覽器(如IE, FireFox等目前主流的瀏 覽器),它通過為表單組件的class屬性(該屬性用于標(biāo)識標(biāo)簽元素的樣式名/ 類)配置驗證規(guī)則,從而具備對表單中每個表單控件的驗證能力。
但采用以上驗證框架對網(wǎng)頁JavaScript表單驗證時,存在如下缺點
1、驗證規(guī)則的配置過程復(fù)雜,并且復(fù)用性低。
基于用戶需求,很多情況下需要組合驗證規(guī)則以得到新的驗證規(guī)則,但目 前的驗證框架都不支持驗證規(guī)則組合, 一般針對不同的表單需要重寫驗證規(guī) 則,從而導(dǎo)致了驗證規(guī)則的復(fù)用性很低。
例如,待驗證表單的一個文本輸入框要求驗證"長度范圍",另一個輸入 框要求驗證"長度范圍,,以及"必須是數(shù)字,,,在配置驗證規(guī)則時,針對第一個文本輸入框,需要編寫一個針對"長度范圍"的驗證規(guī)則,將編寫的驗證規(guī)
則添加給第一個輸入框,用于該表單控件驗證;針對第二個輸入框,需要分別
編寫針對"長度范圍"和"數(shù)字"的驗證規(guī)則,并將編寫的驗證規(guī)則集合后添 加給第二個輸入框,用于該表單控件驗證。這樣,— 驗證對象的需求越多,需要 編寫的驗證規(guī)則也就越多,并且每次驗證都需要針對本次驗證需求編寫對應(yīng)的 驗證規(guī)則,從而驗證規(guī)則的配置過程復(fù)雜,并且基本驗證規(guī)則的復(fù)用性很低。
2、驗證過程繁瑣。
如上述的Rapid-Validation -瞼證框架,首先是通過配置網(wǎng)頁的class屬性來 使表單控件具有驗證能力,這種配置方式對HTML (Hyper Text Markup Language,超文本標(biāo)記語言)代碼有入侵性,而且需要使用HTML頁面的class 屬性,從而使得驗證過程繁瑣。
綜上所述,現(xiàn)有網(wǎng)頁腳本語言表單的驗證方法中,驗證規(guī)則的配置過程復(fù) 雜、復(fù)用性低,并且驗證過程繁瑣。
發(fā)明內(nèi)容
有鑒于此,本申請實施例提供一種表單控件的驗證方法及裝置,采用該技 術(shù)方案,能夠簡單靈活地配置驗證規(guī)則,提高了驗證規(guī)則的復(fù)用性,并且簡化 了對表單中表單控件的驗證過程。
本申請實施例通過如下技術(shù)方案實現(xiàn)
本申請實施例提供了 一種表單控件的驗證方法,首先根據(jù)表單控件的類型 獲取用于驗證所述表單控件的驗證規(guī)則,所述驗證規(guī)則包括至少一個基本驗證 規(guī)則,并建立獲取的所述驗證規(guī)則與所述表單控件的對應(yīng)關(guān)系;
該驗證方法包括步驟
確定用戶當(dāng)前操作的表單控件的驗證觸發(fā)條件;
當(dāng)所述觸發(fā)條件滿足時,獲取與所述表單控件對應(yīng)的驗證規(guī)則;
根據(jù)獲取的所述驗證規(guī)則驗證所述表單控件。本申請實施例還提供了一種表單控件的驗證裝置,包括
配置單元,用于根據(jù)表單控件的類型獲取用于驗證所述表單控件的驗證規(guī)
則,所述驗證規(guī)則包括至少一個基本驗證規(guī)則,并建立獲取的所述驗證規(guī)則與
所述表單控件的對應(yīng)關(guān)系;
觸發(fā)條件確定單元,用于確定用戶當(dāng)前操作的表單控件的驗證觸發(fā)條件; 驗證規(guī)則獲取單元,用于當(dāng)滿足所述觸發(fā)條件確定單元確定的驗證觸發(fā)條
件時,從所述配置單元獲取與所述表單控件對應(yīng)的驗證規(guī)則;
表單控件。
通過以上技術(shù)方案,本申請實施例中,首先根據(jù)表單控件的類型獲取用于
驗證該表單控件的驗證規(guī)則,該驗證規(guī)則包括至少一個基本驗證規(guī)則,并建立
驗證規(guī)則與表單控件的對應(yīng)關(guān)系;在執(zhí)行驗證過程時,確定用戶當(dāng)前操作的表
單控件的驗證觸發(fā)條件,當(dāng)滿足該觸發(fā)條件時,獲耳又與該表單控件對應(yīng)的驗證
規(guī)則,并根據(jù)獲取的驗證規(guī)則驗證該表單控件。根據(jù)該技術(shù)方案,能夠根據(jù)表
單控件的類型簡單靈活地配置驗證規(guī)則,并且驗證規(guī)則可以被多個表單控件復(fù)
用,從而提高了驗證規(guī)則的復(fù)用性,并且無需更改或訪問驗證對象的代碼等屬
性,簡化了對表單中表單控件的驗證過程。
本申請的其它特征和優(yōu)點將在隨后的說明書中闡述,并且,部分地從說明
書中變得顯而易見,或者通過實施本申請而了解。
圖1為本申請實施例提供的配置驗證規(guī)則的流程圖; 圖2為本申請實施例提供的配置的驗證規(guī)則與表單以及表單控件之間的邏 輯關(guān)系圖3為本申請實施例提供的對表單進行驗證的流程圖; 圖4為本申請實施例提供的對表單進行驗證的裝置示意圖。
具體實施例方式
為了給出簡單靈活地配置驗證規(guī)則,提高驗證規(guī)則的復(fù)用性,以及簡化表 單的驗證過程的實現(xiàn)方案,本申請實施例提供了一種表單控件的驗證方法,該 方法中,在執(zhí)行表單控件驗證過程之前,首先根據(jù)表單控件的類型確定至少一
個驗證規(guī)則,獲取確定的驗證規(guī)則并建立驗證規(guī)則與表單控件的對應(yīng)關(guān)系;在
對表單控件進行驗證時,首先確定用戶當(dāng)前操作的表單控件的驗證觸發(fā)條件, 當(dāng)滿足該觸發(fā)條件時,獲取與該表單控件對應(yīng)的驗證規(guī)則,并根據(jù)獲取的驗證 規(guī)則驗證該用戶對表單控件的操作結(jié)果。
以下結(jié)合說明書附圖對本申請的優(yōu)選實施例進行說明,應(yīng)當(dāng)理解,此處所 描述的優(yōu)選實施例僅用于說明和解釋本申請,并不用于限定本申請。
在執(zhí)行表單的驗證過程之前,需要根據(jù)表單控件的類型配置驗證規(guī)則等信
息,具體如圖l所示,驗證規(guī)則的配置過程如下 步驟IOI、確定待配置表單控件的ID (標(biāo)識)。
該步驟中,表單控件的ID可以是其自身攜帶的ID,也可以是系統(tǒng)實時分 配的ID。
步驟102、根據(jù)待配置表單控件的類型,確定用于驗證該表單控件的驗證規(guī)則。
該步驟中,表單控件的類型包括文本輸入框、下拉選擇框、打鉤選4奪框 等。根據(jù)待配置表單控件的類型,確定用于驗證該表單控件的驗證規(guī)則,具體 為
根據(jù)待配置表單控件的類型,確定該表單控件對用戶的操作要求,然后根 據(jù)確定的操作要求,確定對應(yīng)的驗證規(guī)則,其中,確定的驗證規(guī)則包括至少一 個基本驗證規(guī)則。例如,對于文本輸入框類型的表單控件,其對用戶的操作要 求可能為"非空"和"輸入長度在2 10個字符",則根據(jù)該操作要求,確定其 對應(yīng)的驗證規(guī)則包括兩個基本驗證規(guī)則,分別為對"非空"的基本驗證規(guī)則以及對"輸入長度在2~10個字符"的基本驗證規(guī)則。
步驟103、從預(yù)先建立的基本驗證規(guī)則庫中獲取確定的用于驗證表單控件 的-瞼i正MJ,j。
該步驟中,基本驗證規(guī)則庫中存儲的基本驗證規(guī)則是根據(jù)各種表單控件的 操作要求預(yù)先設(shè)置的,該基本驗證規(guī)則為最小單位的驗證規(guī)則,通過基本驗證 規(guī)則的組合可以得到復(fù)雜驗證規(guī)則,以對有較多操作要求的表單控件進行驗 證。例如,基本驗證規(guī)則庫中設(shè)置的基本驗證規(guī)則可以包括非空驗證規(guī)則, 長度范圍驗證規(guī)則,數(shù)字類型驗證規(guī)則等。
具體地,可對該基本驗證規(guī)則庫中存儲的基本驗證規(guī)則進行管理,例如, 添加、更改或刪除基本驗證規(guī)則,并且保存基本驗證規(guī)則時為方便查找和管理, 可以設(shè)關(guān)鍵字段建立索引。
步驟104、建立獲取的驗證規(guī)則(包括至少一條基本驗證規(guī)則)與待配置 表單控件的對應(yīng)關(guān)系,并保存該對應(yīng)關(guān)系。
該步驟中,建立獲取的驗證規(guī)則與待配置表單控件的對應(yīng)關(guān)系即建立獲取 的驗證規(guī)則與待配置表單控件的ID的對應(yīng)關(guān)系。保存時,可以以待配置表單 控件的ID為關(guān)鍵字段建立索引保存各表單控件的驗證規(guī)則,以方便查找。
上述步驟102中,根據(jù)待配置表單控件的類型,確定用于驗證該表單控件 的驗證規(guī)則,包括
根據(jù)表單控件的類型確定要求用戶進行的操作,針對該操作確定用于驗證 用戶進行的操作的驗證規(guī)則,即驗證用戶進行的操作是否滿足系統(tǒng)要求用戶進 行的操作,其中,確定的驗證規(guī)則包括至少一個基本驗證規(guī)則。
例如,待配置表單控件的類型為文本輸入框,系統(tǒng)要求用戶進行的操作為 輸入字符并且長度范圍在2~6個字符,貝'J根據(jù)系統(tǒng)要求用戶進行的操作確定的 驗證規(guī)則包括兩個基本驗證規(guī)則,基本驗證規(guī)則一用于驗證輸入內(nèi)容為字符, 基本驗證規(guī)則二用于驗證輸入內(nèi)容的長度為2~6個字符。
進一步地,配置表單控件的驗證規(guī)則時,同時確定對表單控件的不同驗證結(jié)果分別對應(yīng)的操作,并建立確定的操作信息與表單控件的對應(yīng)關(guān)系。其中,
對表單控件的不同馬全證結(jié)果包括驗證中、驗證成功、-驗證失敗,例如,配置 驗證失敗時返回失敗提示消息給用戶,驗證成功時提示用戶進行下一步操作。
根據(jù)以上配置過程,表單控件、驗證規(guī)則以及配置結(jié)果的邏輯關(guān)系可如圖 2所示,對圖2所示的含義以及邏輯關(guān)系描述如下
左邊的驗證容器與表單對應(yīng),驗證容器中的驗證器與其對應(yīng)表單中的表單 控件對應(yīng),表單中有多少個表單控件需要驗證,則驗證容器中有相應(yīng)數(shù)目的驗 證器;
右邊是設(shè)置的基本驗證規(guī)則庫,其中包括多條基本驗證規(guī)則,例如長度范 圍的驗證規(guī)則,非空的驗證規(guī)則,數(shù)字類型的驗證規(guī)則等最基本的驗證規(guī)則, 可以根據(jù)需要對基本驗證規(guī)則庫進行擴展;
驗證容器中的驗證器可以添加一個或多個基本驗證規(guī)則,該驗證器支持基 本驗證規(guī)則之間的"與"關(guān)系、"或"關(guān)系,從而通過組合這些基本驗證規(guī)則 來滿足對不同表單控件驗證的需求。
具體實現(xiàn)時,驗證容器可以通過JSON ( JavaScript Object Notation , JavaScript對象數(shù)據(jù)交換格式)來實現(xiàn),JSON是一種輕量級的數(shù)據(jù)交換格式, 易于閱讀和編寫,同時也易于機器解析和生成。
首先,創(chuàng)建了一個包含驗證器、驗證規(guī)則的JSON對象數(shù)組,整個對象數(shù) 組保存了整個驗證容器的配置信息,如驗證規(guī)則配置信息等,整個數(shù)組包含多 個這樣的JSON對象,同時對應(yīng)表單中的多個表單控件(通過id)。
在頁面加載初始化該配置的時候,驗證容器會通過讀取該JSON對象數(shù)組 來初始化整個表單的配置以及驗證,即根據(jù)配置項中表單控件的id為該表單控 件綁定相應(yīng)的觸發(fā)事件(即驗證觸發(fā)條件),事件觸發(fā)時逐個執(zhí)行驗證規(guī)則的 校驗(該驗證規(guī)則從JSON對象中取得),根據(jù)校驗結(jié)果執(zhí)行相應(yīng)的操作。
驗證容器即為處理上述流程的一段程序,負(fù)責(zé)初始化整個表單的配置,及 整個驗證流程;驗證器為配置項中的一個JSON對象,它和表單控件是通過配置中表單控件的id綁定的,為其添加驗證規(guī)則即配置JSON對象,如 {id:name,rules: [ {rule:notNull}, {rule:lengthRange,args: [4,64]}]}。
所有的配置信息都是從最初配置的JSON對象(即基本驗證規(guī)則庫)中獲 取,由于Javascript語言支持運行時動態(tài)改變方法和屬性,所以可以在運行時 動態(tài)的將基本驗證規(guī)則(如notNull和lengthRange )綁定到表單的觸發(fā)事件點 上,當(dāng)指定事件被觸發(fā)時,就會執(zhí)行notNull等驗證規(guī)則的方法。
根據(jù)圖2所示的邏輯關(guān)系示意圖,在需要對不同表單控件驗證時,只需要 以不同的方式組合基本驗證規(guī)則,從而達到靈活簡單對基本驗證規(guī)則的組合和 復(fù)用,例如,對第2個驗證器對應(yīng)的表單控件驗證時,需要的驗證規(guī)則為基本 驗證規(guī)則1、基本驗證規(guī)則2以及基本驗證規(guī)則3。并且,從圖2可以看出, 基本驗證規(guī)則1可以被驗證器1以及驗證器2分別對應(yīng)的表單控件所復(fù)用。
進一步地,如果需要配置不同驗證結(jié)果對應(yīng)的操作,可以根據(jù)以上過程進 行配置,即建立如圖2所示的邏輯關(guān)系圖。
通過上述過程為表單控件配置完成驗證規(guī)則等信息后,在對表單進行驗證 時,如圖3所示,扭J亍如下步驟
步驟301 、確定用戶當(dāng)前操作的表單控件的驗證觸發(fā)條件。
步驟302、當(dāng)確定滿足該表單控件的驗證觸發(fā)條件時,獲取與該表單控件 對應(yīng)的-驗i正失見則。
該步驟中,獲取的驗證規(guī)則包括至少一個基本驗證規(guī)則,具體獲取過程如
下
首先確定該表單控件的ID,然后根據(jù)該ID獲取與該ID對應(yīng)的驗證規(guī)則, 獲取的驗證規(guī)則為一個或多個,并且,當(dāng)驗證規(guī)則為多個時,各-險證規(guī)則之間 的邏輯關(guān)系可以為"與"關(guān)系,也可以為"或,,關(guān)系。實際應(yīng)用中,可以首先 確定與該表單控件所在表單對應(yīng)的驗證容器,并根據(jù)該表單控件的ID確定對 應(yīng)的驗證器,并獲取與該驗證器綁定的基本驗證規(guī)則。
步驟303、根據(jù)獲取的驗證規(guī)則驗證用戶對該表單控件的操作結(jié)果。上述步驟301中,表單控件的驗證觸發(fā)條件包括如下中的至少一個
1) 用戶對該表單控件操作完成,例如,用戶對該表單控件輸入或選擇完 成后,鼠標(biāo)移開該表單控件時,觸發(fā)對該表單控件的驗證過程;
2) 用戶對該表單控件所在表單操作完成,例如,用戶對該表單控件所在 表單中的所有表單控件輸入或選擇完成并點擊提交按鈕時,觸發(fā)對該表單控件 的驗證過程;
3) 用戶對該表單控件所在表單中的設(shè)定表單控件的操作結(jié)果為設(shè)定值, 例如,用戶對該表單控件之前的表單控件的操作結(jié)果為設(shè)定值時,觸發(fā)對該表 單控件的驗證過程。
具體地,該驗證觸發(fā)條件可以根據(jù)需要靈活設(shè)置,此處不再"~一列舉。
上述步驟303中,根據(jù)獲取的驗證規(guī)則驗證用戶對該表單控件的操作結(jié)果, 即判斷用戶對該表單控件的操作結(jié)果是否符合與該表單控件對應(yīng)的驗證規(guī)則。 具體地,當(dāng)與該表單控件對應(yīng)的驗證規(guī)則包括不止一個基本驗證規(guī)則時,根據(jù) 獲取的驗證規(guī)則驗證用戶對該表單控件的操作結(jié)果,包括
獲取驗證規(guī)則中"與"關(guān)系的基本驗證規(guī)則,利用該"與"關(guān)系的基本驗 證規(guī)則驗證用戶對表單控件的操作結(jié)果;
若未獲取到"與,,關(guān)系的基本驗證規(guī)則或利用"與"關(guān)系的基本驗證規(guī)則 驗證失敗,則進一步利用驗證規(guī)則中"或"關(guān)系的基本驗證規(guī)則驗證該用戶對 表單控件的操作結(jié)果。
其中
利用"與"關(guān)系的基本驗證規(guī)則驗證用戶對該表單控件的操作結(jié)果,具體
為
判斷用戶對該表單控件的操作結(jié)果是否符合該"與"關(guān)系的驗證規(guī)則,若 不符合該"與"關(guān)系的基本驗證規(guī)則中的任意一個,則確定驗證失敗,否則成 功。
利用"或,,關(guān)系的基本驗證規(guī)則驗證用戶對該表單控件的操作結(jié)果,具體為
判斷該用戶對該表單控件的操作結(jié)果是否符合該"或"關(guān)系的基本驗證規(guī) 則,若符合該"或"關(guān)系的基本驗證規(guī)則中的任意一個,則確定-險證成功,否 則失敗。
為了更加深刻地體現(xiàn)本申請的思想,以下結(jié)合具體的實施例進一步對本申 請優(yōu)選方案的實現(xiàn)過程進行詳細描述
當(dāng)前待驗證表單中有5個表單控件的值需要提交并驗證,該5個表單控件 分別為"姓名"、"電子郵件地址"、"手機號碼"、"公司名稱"以及"驗證碼";
驗證觸發(fā)條件包括(1)鼠標(biāo)移出表單控件時對單個表單控件進行驗證; (2)提交整個表單時對整個表單控件進行驗證。
其中,各表單控件的驗證規(guī)則包括
1、 "姓名"對應(yīng)的驗證規(guī)則包括的基本驗證規(guī)則有a)ID為"name"; b) 輸入不能為空;c)長度在4-64個字符間;
其中,a)、 b)、 c)三個驗證規(guī)則之間是"與,,關(guān)系。
2、 "電子郵件地址,,對應(yīng)的驗證規(guī)則包括的基本驗證規(guī)則有a) ID為 "email"; b)輸入不能為空;c)長度在4-128個字符間;d)必須符合郵件地
址格式;
其中,a)、 b)、 c)、 d)四個驗證規(guī)則之間是"與,,關(guān)系。
3 、"手機號碼"對應(yīng)的驗證規(guī)則包括的基本驗證規(guī)則有a )ID為"mobile";
b)可以為空;c)長度必須為ll位的數(shù)字;
其中,a)、 c)兩個個驗證規(guī)則之間是"與"關(guān)系,b)和其它驗證規(guī)則之
間是"或"關(guān)系。
4、"公司名稱"對應(yīng)的驗證規(guī)則包括的基本驗證規(guī)則有a) ID為 "company"; b)單選框中如果選擇了 "個人,,則不做驗證;c)如果選擇了 "公 司"則做驗證;d)不能為空;e)長度在1-256個字符間;
其中,a)、 c)、 d)、 e)四個驗證規(guī)則之間是與關(guān)系,b)和其它規(guī)則之間是或關(guān)系。
5、"驗證碼"對應(yīng)的驗證規(guī)則包括的基本騶^正規(guī)則有a) ID為 "checkCode"; b)不能為空;c)必須為4位的數(shù)字,如果出錯,提示出錯信 息并更新驗證碼;
其中,a)、 b)、 c)三個驗證規(guī)則之間是"與"關(guān)系。 基本驗證規(guī)則庫中設(shè)置的基本驗證規(guī)則包括
非空(notNull)
長度(lengthRange )
數(shù)字(number)
電子郵件格式(email)
根據(jù)以上信息,對用于驗證該表單的驗證規(guī)則配置信息如下 {id:name,rules: [{rule:notNull} , {rule:lengthRange,args: [4,64]}]} {id:email,mles:[{rule:notNull},{rule:lengthRange,args:[4,128]},{rule:email}]} {id:mobile,rules: [ (rule:lengthRange,args: [11,11]}, {rule:number} ]} {id:company,dependOn:selectCompany,rules: [ {rule:notNull}, {rule:lengthRang e,args:[4,16]}]}
{id:checkCode,rules:[{rule:notNull},{rule:lengthRange,args:[4,4]},{rule:numb er} ] ,onError: changeCheckCode} 對以上代碼描述如下
以上五個大括號內(nèi)的配置對應(yīng)該表單中需要驗證的五個表單控件,分別 為"姓名"、"電子郵件地址"、"手機號碼"、"公司名稱"以及"驗證碼"。 其中
id是表單控件的id,如第一個大括號中的"name",第二個大括號中的 "email";
rules表示該條配置信息對應(yīng)的驗證規(guī)則;
rule對應(yīng)具體的每一個基本驗證規(guī)則,如第一個大括中配置了 "notNull", "lengthRange"這兩個基本驗證規(guī)則;args是基本驗證規(guī)則需要的參數(shù),如第一個大括中,為"lengthRange"這 個基本驗證規(guī)則配置了 "4、 64"這兩個參數(shù),利用該條基本驗證規(guī)則進行驗 證即驗證長度范圍是否在4到64之間,若是,則驗證通過,否則失??;
depandOn是指定執(zhí)行驗證的前提條件,如第四個大括號中指定了驗證的 前置條件是selectCompany (即選擇公司選項),如果返回值是true,則完成之 后rules中的驗證,否則不做驗證;
onError是在驗證失敗時需要執(zhí)行的操作,如第五個大括號中指定了驗證 失敗時執(zhí)行changeCheckCode方法(即更換-險證碼);
onSuccess可以配置,用于指定驗證成功后做的操作;
若未配置onError和onSuccess,則按照默認(rèn)的方法來執(zhí)行驗證失敗或成功 的操作,例如,顯示失敗或成功的提示信息給用戶。
根據(jù)以上過程完成表單驗證的相關(guān)配置后,該表單具備了符合需求的驗證 邏輯。
通過以上具體實施例可以看出,本申請實施例通過4個基本驗證規(guī)則的組 合和簡單配置,實現(xiàn)了上述需求中整個表單的驗證。這4個基本驗證規(guī)則還可 以應(yīng)用到其它需求場景的表單驗證中。根據(jù)本申請?zhí)峁┑募夹g(shù)方案,有了一些 抽象出來的基本驗證規(guī)則后,可以靈活的組合出能應(yīng)對絕大多數(shù)表單控件需求 的組合驗證規(guī)則,復(fù)用于其它需求場景的表單驗證中。
根據(jù)本申請?zhí)峁┑纳鲜黾夹g(shù)方案,在實際應(yīng)用中,可以以Prototypejs作為
底層框架,采用面向?qū)ο笏枷朐O(shè)計靈活的自動化表單驗證框架,以支持IE、 firefox等主要的瀏覽器,并且具有靈活配置組合基本驗證規(guī)則、靈活處理驗證 過程中的各種狀態(tài)事件的能力。不論是單個表單控件還是整個表單的驗證都可 交由該驗證框架處理,只需配置好相應(yīng)驗證規(guī)則即可。
與上述流程對應(yīng),本申請實施例還提供了一種表單控件的-瞼證裝置,如圖 4所示,該裝置包括
配置單元401、觸發(fā)條件確定單元402、驗證規(guī)則獲取單元403以及驗證單元404;其中
配置單元401 ,用于根據(jù)表單控件的類型確定用于驗證所述表單控件的驗 證規(guī)則,該驗證規(guī)則包括至少一個基本驗證規(guī)則,獲取確定的驗證規(guī)則并建立 該驗證規(guī)則與該表單控件的對應(yīng)關(guān)系;
觸發(fā)條件確定單元402,用于確定用戶當(dāng)前操作的表單控件的驗證觸發(fā)條
件;
驗證規(guī)則獲取單元403,用于當(dāng)滿足觸發(fā)條件確定單元402確定的驗證觸 發(fā)條件時,從配置單元401獲取與該表單控件對應(yīng)的驗證規(guī)則;
驗證單元404,用于根據(jù)驗證規(guī)則獲取單元403獲取的驗證規(guī)則驗證用戶 對該表單控件的操作結(jié)果。
一個實施例中,上述配置單元401具體用于根據(jù)表單控件的類型,確定 所述表單控件對用戶的操作要求,并根據(jù)所述操作要求,從預(yù)先建立的基本驗 證規(guī)則庫中獲取與所述操作要求對應(yīng)的至少 一個基本-驗證規(guī)則。
一個實施例中,上述配置單元401具體用于從預(yù)先建立的基本驗證規(guī)則 庫中獲取確定的-險證規(guī)則。
一個實施例中,上配置單元401進一步用于確定該表單控件的標(biāo)識,并 建立獲取的驗證規(guī)則與確定的標(biāo)識的對應(yīng)關(guān)系;
相應(yīng)地,上述驗證規(guī)則獲取單元403具體用于獲取與該表單控件的標(biāo)識 對應(yīng)的-驗i正^見則。
一個實施例中,上述驗證單元404具體用于根據(jù)獲取的驗證規(guī)則驗證所 述用戶對所述表單控件的操作結(jié)果。
具體地,當(dāng)獲取的與該表單控件對應(yīng)的驗證規(guī)則包括不止一個基本驗證規(guī) 則時,獲取該驗證規(guī)則中與關(guān)系的基本驗證規(guī)則,利用該與關(guān)系的基本驗證規(guī) 則驗證用戶對該表單控件的操作結(jié)果;
若未獲取到與關(guān)系的基本驗證規(guī)則,則利用該驗證規(guī)則中或關(guān)系的基本驗 證規(guī)則驗證該用戶對表單控件的操作結(jié)果;或,若利用所述與關(guān)系的基本驗證規(guī)則驗證失敗并且所述驗證A見則中包括或關(guān)系的基本-驗i正規(guī)則,則利用所述或 關(guān)系的基本驗證規(guī)則驗證所述用戶對所述表單控件的操作結(jié)果。
一個實施例中,上述配置單元401還用于確定對表單控件的不同-瞼證結(jié) 果分別對應(yīng)的操作,并建立確定的操作信息與該表單控件的對應(yīng)關(guān)系;
相應(yīng)地,上述驗證單元404還用于根據(jù)獲取的驗證規(guī)則驗證該用戶對表 單控件的操作結(jié)果后,根據(jù)驗證結(jié)果獲取與該表單控件對應(yīng)的操作信息,并根 據(jù)獲取的操作信息執(zhí)行相應(yīng)的操作。該實施例中,配置單元401與驗證單元404 之間有連接關(guān)系(未在圖中標(biāo)出)。
根據(jù)本申請?zhí)峁┑囊陨霞夹g(shù)方案,能夠達到如下效果
1、 能夠靈活的組合驗證規(guī)則,并且驗證規(guī)則的復(fù)用性高。 如以上所述的實施例,只需要配置好基本驗證規(guī)則,例如,非空,長度,
郵件,然后針對表單控件的類型配置組合這些基本驗證規(guī)則,讓其滿足不同表 單控件的驗證需求。并且,配置好的基本驗證規(guī)則可以被多個表單控件使用, 復(fù)用性高。
2、 筒化了表單的驗證過程。
通過上述對驗證規(guī)則的配置以及對驗證成功、失敗、處理中等狀態(tài)的配置, 自動完成整個表單的驗證,不需要再編寫整個表單的驗證流程,也無需更改或 訪問驗證對象的代碼等屬性,筒化了表單的驗證過程。而對于新的表單只需重 新配置組合驗證規(guī)則即可以達到同樣的效果,而不需要再寫一些特定的驗證規(guī) 則,以及整個表單的驗證流程。
顯然,本領(lǐng)域的技術(shù)人員可以對本申請進行各種改動和變型而不脫離本申 請的精神和范圍。這樣,倘若本申請的這些修改和變型屬于本申請權(quán)利要求及 其等同技術(shù)的范圍之內(nèi),則本申請也意圖包含這些改動和變型在內(nèi)。
權(quán)利要求
1、一種表單控件的驗證方法,其特征在于,根據(jù)表單控件的類型獲取用于驗證所述表單控件的驗證規(guī)則,所述驗證規(guī)則包括至少一個基本驗證規(guī)則,并建立獲取的所述驗證規(guī)則與所述表單控件的對應(yīng)關(guān)系;所述驗證方法包括確定用戶當(dāng)前操作的表單控件的驗證觸發(fā)條件;當(dāng)滿足所述驗證觸發(fā)條件時,獲取與所述表單控件對應(yīng)的驗證規(guī)則;根據(jù)獲取的所述驗證規(guī)則驗證所述表單控件。
2、 如權(quán)利要求1所述的驗證方法,其特征在于,根據(jù)表單控件的類型獲 取用于驗證所述表單控件的驗證規(guī)則,包括根據(jù)表單控件的類型,確定所述表單控件對用戶的操作要求; 根據(jù)所述操作要求,從預(yù)先建立的基本驗證規(guī)則庫中獲取與所述操作要求 對應(yīng)的至少 一個基本—瞼"i正MJ'j 。
3、 如權(quán)利要求1或2所述的驗證方法,其特征在于,建立獲取的所述驗 證規(guī)則與所述表單控件的對應(yīng)關(guān)系,包括確定所述表單控件的標(biāo)識,并建立獲取的所述驗證規(guī)則與所述標(biāo)識的對應(yīng) 關(guān)系;獲取與所述表單控件對應(yīng)的驗證規(guī)則,具體為 獲取與所述表單控件的標(biāo)識對應(yīng)的驗證規(guī)則。
4、 如權(quán)利要求1所述的驗證方法,其特征在于,根據(jù)獲取的所述驗證規(guī) 則驗證所述表單控件,包括根據(jù)獲取的所述驗證規(guī)則驗證所述用戶對所述表單控件的操作結(jié)果。
5、 如權(quán)利要求4所述的驗證方法,其特征在于,當(dāng)獲取的與所述表單控 件對應(yīng)的驗證規(guī)則包括不止一個基本驗證規(guī)則時,根據(jù)獲取的所述驗證規(guī)則驗 證所述用戶對所述表單控件的操作結(jié)果,包括獲取所述驗證規(guī)則中"與"關(guān)系的基本驗證規(guī)則,利用所述"與"關(guān)系的基本驗證規(guī)則驗證所述用戶對所述表單控件的操作結(jié)果;若未獲取到"與"關(guān)系的基本驗證規(guī)則,則利用所述驗證規(guī)則中"或"關(guān) 系的基本驗證規(guī)則驗證所述用戶對所述表單控件的操作結(jié)果;或,若利用所述"與"關(guān)系的基本驗證規(guī)則驗證失敗并且所述驗證規(guī)則中包括"或"關(guān)系的基 本驗證規(guī)則,則利用所述"或"關(guān)系的基本驗證規(guī)則驗證所述用戶對所述表單 控件的操作結(jié)果。
6、 如權(quán)利要求1所述的驗證方法,其特征在于,確定對表單控件的不同 驗證結(jié)果分別對應(yīng)的操作類型,并建立驗證結(jié)果、操作類型信息以及所述表單 控件之間的對應(yīng)關(guān)系;根據(jù)獲取的所述驗證規(guī)則驗證所述表單控件后,還包括 根據(jù)驗證結(jié)果獲取與所述表單控件對應(yīng)的操作類型信息,并根據(jù)獲取的操 作類型信息執(zhí)行相應(yīng)的操作。
7、 如權(quán)利要求1所述的驗證方法,其特征在于,所述驗證觸發(fā)條件包括 如下中的至少一個所述用戶對所述表單控件操作完成;所述用戶對所述表單控件所在表單操作完成;所述用戶對所述表單控件所在表單中的設(shè)定表單控件的操作結(jié)果為設(shè)定值。
8、 一種表單控件的-瞼證裝置,其特征在于,包括配置單元,用于根據(jù)表單控件的類型獲取用于驗證所述表單控件的驗證規(guī) 則,所述驗證規(guī)則包括至少一個基本驗證規(guī)則,并建立獲取的所述驗證規(guī)則與 所述表單控件的對應(yīng)關(guān)系;觸發(fā)條件確定單元,用于確定用戶當(dāng)前操作的表單控件的驗證觸發(fā)條件; 驗證規(guī)則獲取單元,用于當(dāng)滿足所述觸發(fā)條件確定單元確定的驗證觸發(fā)條 件時,從所述配置單元獲取與所述表單控件對應(yīng)的驗證規(guī)則;表單控件。
9、 如權(quán)利要求8所述的驗證裝置,其特征在于,所述配置單元具體用于 根據(jù)表單控件的類型,確定所述表單控件對用戶的操作要求,并根據(jù)所述操作要求,從預(yù)先建立的基本驗證規(guī)則庫中獲取與所述操作要求對應(yīng)的至少一 個基本驗證規(guī)則。
10、 如權(quán)利要求8或9所述的驗證裝置,其特征在于,配置單元進一步用于確定所述表單控件的標(biāo)識,并建立獲取的所述驗證規(guī)則與所述標(biāo)識的對應(yīng)關(guān)系;所述驗證規(guī)則獲取單元具體用于獲取與所述表單控件的標(biāo)識對應(yīng)的驗證 規(guī)則。
11、 如權(quán)利要求8所述的驗證裝置,其特征在于,所述驗證單元具體用于 根據(jù)獲取的所述驗證規(guī)則驗證所述用戶對所述表單控件的操作結(jié)果。
12、 如權(quán)利要求11所述的驗證裝置,其特征在于,所述驗證單元進一步 用于當(dāng)獲取的與所述表單控件對應(yīng)的驗證規(guī)則包括不止一個基本驗證規(guī)則時, 獲取所述驗證規(guī)則中"與"關(guān)系的基本驗證規(guī)則,利用所述"與"關(guān)系的基本 驗證規(guī)則驗證所述用戶對所述表單控件的操作結(jié)果;若未獲取到"與"關(guān)系的基本驗證規(guī)則,則利用所述驗證規(guī)則中"或"關(guān) 系的基本驗證規(guī)則驗證所述用戶對所述表單控件的操作結(jié)果;或,若利用所述 "與,,關(guān)系的基本驗證規(guī)則驗證失敗并且所述驗證規(guī)則中包括"或"關(guān)系的基 本驗證規(guī)則,則利用所述"或"關(guān)系的基本驗證規(guī)則驗證所述用戶對所述表單 控件的操作結(jié)果。
13、 如權(quán)利要求8所述的驗證裝置,其特征在于,所述配置單元還用于 確定對表單控件的不同驗證結(jié)果分別對應(yīng)的操作類型,并建立驗證結(jié)果、操作類型信息以及所述表單控件之間的對應(yīng)關(guān)系;所述驗證單元還用于根據(jù)獲取的所述驗證規(guī)則驗證所述用戶對所述表單控件的操作結(jié)果后,根據(jù)驗證結(jié)果獲取與所述表單控件對應(yīng)的操作類型信息, 并根據(jù)獲取的操作類型信息執(zhí)行相應(yīng)的操作。
全文摘要
本申請公開了一種表單控件的驗證方法及裝置,具體技術(shù)方案包括首先根據(jù)表單控件的類型獲取用于驗證所述表單控件的驗證規(guī)則,所述驗證規(guī)則包括至少一個基本驗證規(guī)則,并建立獲取的所述驗證規(guī)則與所述表單控件的對應(yīng)關(guān)系;該驗證方法包括步驟確定用戶當(dāng)前操作的表單控件的驗證觸發(fā)條件;當(dāng)所述觸發(fā)條件滿足時,獲取與所述表單控件對應(yīng)的驗證規(guī)則;根據(jù)獲取的所述驗證規(guī)則驗證所述表單控件,采用該技術(shù)方案,能夠簡單靈活地配置驗證規(guī)則,提高了驗證規(guī)則的復(fù)用性,并且簡化了表單的驗證過程。
文檔編號G06F17/30GK101576823SQ20091014732
公開日2009年11月11日 申請日期2009年6月11日 優(yōu)先權(quán)日2009年6月11日
發(fā)明者張海平, 洪文其 申請人:阿里巴巴集團控股有限公司