構(gòu)包括:表單項(xiàng)名稱屬性、對(duì)應(yīng)原始表單項(xiàng)和驗(yàn)證器列表。
[0049]其中,表單項(xiàng)名稱屬性在提交時(shí)做為數(shù)據(jù)key傳給服務(wù)器端。
[0050]原始表單項(xiàng)用于在提交時(shí)取值、驗(yàn)證。
[0051]驗(yàn)證器列表在提交時(shí)對(duì)該表單值做驗(yàn)證及錯(cuò)誤反饋處理。
[0052]在本發(fā)明的一個(gè)優(yōu)選實(shí)施例中,所述驗(yàn)證器列表的結(jié)構(gòu)包括:驗(yàn)證器名和錯(cuò)誤提示信息。
[0053]采用上述結(jié)構(gòu)的驗(yàn)證器列表,通過(guò)讀取驗(yàn)證器名可實(shí)現(xiàn)對(duì)當(dāng)前表單值進(jìn)行相應(yīng)驗(yàn)證操作,如驗(yàn)證未通過(guò)則把配置的錯(cuò)誤提示信息加入錯(cuò)誤信息列表產(chǎn)生錯(cuò)誤信息。從而使得開(kāi)發(fā)人員通過(guò)配置即可對(duì)表單項(xiàng)進(jìn)行相應(yīng)驗(yàn)證及錯(cuò)誤反饋工作。
[0054]在本發(fā)明的一個(gè)優(yōu)選實(shí)施例中,S5中,所述調(diào)用所述自定義表單對(duì)像的提交方法,采用如下方法進(jìn)行實(shí)施:
[0055]S501,判斷提交事件的屬性是否為空,如果是,則進(jìn)入下一個(gè)循環(huán);否則,調(diào)用該事件激發(fā)所述自定義表單對(duì)像的提交事件;
[0056]S502,遍歷所述自定義子元素,依據(jù)所述原始表單的元素獲取數(shù)據(jù)值,再將所述數(shù)據(jù)值與所述驗(yàn)證器列表進(jìn)行驗(yàn)證匹配,如果驗(yàn)證失敗,則把驗(yàn)證信息加入失敗列表,否則,把所述數(shù)據(jù)值存入數(shù)據(jù)列表;
[0057]S503,判斷所述失敗列表是否有失敗項(xiàng),如果有失敗項(xiàng),則通過(guò)失敗信息提示驗(yàn)證失敗原因,并停止提交,否則,繼續(xù);
[0058]S504,通過(guò)驗(yàn)證后,判斷通過(guò)驗(yàn)證事件的屬性是否為空,如果為空,則進(jìn)入下一個(gè)循環(huán),否則,調(diào)用該事件激發(fā)所述自定義表單對(duì)像的驗(yàn)證通過(guò)事件;
[0059]S505,異步請(qǐng)求服務(wù)器端,把所述數(shù)據(jù)列表發(fā)送給服務(wù)器端;
[0060]S506,服務(wù)器端返回結(jié)果,判斷提交成功事件的屬性是否為空,如果不為空,則調(diào)用該事件激發(fā)所述自定義表單對(duì)像的提交成功事件,否則,直接提示返回結(jié)果。
[0061]采用上述方法,可以使開(kāi)發(fā)人員能夠選擇自定義提交成功后的處理事件,一般情況下根據(jù)服務(wù)器返回結(jié)果對(duì)用戶進(jìn)行直接的內(nèi)容提示,定義的情況下可以在提交成功之后根據(jù)服務(wù)器返回結(jié)果來(lái)做某種處理,如:錯(cuò)誤提示、頁(yè)面跳轉(zhuǎn)、關(guān)閉彈層、或調(diào)用其它接口等。通過(guò)自定義事件來(lái)增強(qiáng)表單插件靈活及可擴(kuò)展性。
[0062]通過(guò)采用本發(fā)明公開(kāi)的上述技術(shù)方案,得到了如下有益的效果:本發(fā)明實(shí)施例提供的表單驗(yàn)證方法,通過(guò)簡(jiǎn)單配置即實(shí)現(xiàn)對(duì)各種表單項(xiàng)進(jìn)行驗(yàn)證、收集數(shù)據(jù)、并通過(guò)異步請(qǐng)求把數(shù)據(jù)發(fā)送到服務(wù)器端的整個(gè)過(guò)程,簡(jiǎn)化了開(kāi)發(fā)及測(cè)試工作量,保持了代碼規(guī)范化和一致性,降低了出錯(cuò)機(jī)率,提高了開(kāi)發(fā)效率及代碼可靠性,從而降低了團(tuán)隊(duì)維護(hù)成本。
[0063]本說(shuō)明書中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說(shuō)明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似的部分互相參見(jiàn)即可。
[0064]本領(lǐng)域人員應(yīng)該理解的是,上述實(shí)施例提供的方法步驟的時(shí)序可根據(jù)實(shí)際情況進(jìn)行適應(yīng)性調(diào)整,也可根據(jù)實(shí)際情況并發(fā)進(jìn)行。
[0065]上述實(shí)施例涉及的方法中的全部或部分步驟可以通過(guò)程序來(lái)指令相關(guān)的硬件來(lái)完成,所述的程序可以存儲(chǔ)于計(jì)算機(jī)設(shè)備可讀取的存儲(chǔ)介質(zhì)中,用于執(zhí)行上述各實(shí)施例方法所述的全部或部分步驟。所述計(jì)算機(jī)設(shè)備,例如:個(gè)人計(jì)算機(jī)、服務(wù)器、網(wǎng)絡(luò)設(shè)備、智能移動(dòng)終端、智能家居設(shè)備、穿戴式智能設(shè)備、車載智能設(shè)備等;所述的存儲(chǔ)介質(zhì),例如:RAM、ROM、磁碟、磁帶、光盤、閃存、U盤、移動(dòng)硬盤、存儲(chǔ)卡、記憶棒、網(wǎng)絡(luò)服務(wù)器存儲(chǔ)、網(wǎng)絡(luò)云存儲(chǔ)等。
[0066]最后,還需要說(shuō)明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語(yǔ)僅僅用來(lái)將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開(kāi)來(lái),而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語(yǔ)“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、商品或者設(shè)備不僅包括那些要素,而且還包括沒(méi)有明確列出的其他要素,或者是還包括為這種過(guò)程、方法、商品或者設(shè)備所固有的要素。在沒(méi)有更多限制的情況下,由語(yǔ)句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過(guò)程、方法、商品或者設(shè)備中還存在另外的相同要素。
[0067] 以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視本發(fā)明的保護(hù)范圍。
【主權(quán)項(xiàng)】
1.一種表單驗(yàn)證方法,其特征在于,包括如下步驟: S1,檢索頁(yè)面上所有名稱屬性為自定義表單的原始表單; S2,根據(jù)所述原始表單創(chuàng)建對(duì)應(yīng)的自定義表單對(duì)像; S3,根據(jù)所述原始表單的每個(gè)表單項(xiàng)元素,封裝成對(duì)應(yīng)的所述自定義表單對(duì)像的自定義子元素; S4,將所有封裝好的所述自定義表單的自定義子元素存放到所述自定義表單對(duì)像的子元素?cái)?shù)組列表里,組合成所述自定義表單對(duì)像; S5,監(jiān)聽(tīng)所述原始表單的提交事件,當(dāng)所述原始表單發(fā)生提交事件時(shí),調(diào)用所述自定義表單對(duì)像的提交方法。2.根據(jù)權(quán)利要求1所述的表單驗(yàn)證方法,其特征在于,S2中,所述自定義表單對(duì)像的數(shù)據(jù)結(jié)構(gòu)包括:自定義子元素、提交事件、驗(yàn)證通過(guò)事件、提交成功事件和提交方法。3.根據(jù)權(quán)利要求1所述的表單驗(yàn)證方法,其特征在于,S2和S3之間還包括步驟,遍歷所述原始表單中的所有子元素,查找表單類元素。4.根據(jù)權(quán)利要求3所述的表單驗(yàn)證方法,其特征在于,所述表單類元素包括輸入、選擇和文本區(qū)域。5.根據(jù)權(quán)利要求3所述的表單驗(yàn)證方法,其特征在于,S3中,所述封裝成對(duì)應(yīng)的所述自定義表單對(duì)像的自定義子元素中,如果所述表單類元素帶有自定義屬性,就把所述自定義屬性的值解析為驗(yàn)證器,并附加封裝在所述自定義子元素中。6.根據(jù)權(quán)利要求5所述的表單驗(yàn)證方法,其特征在于,S4中,所述組合成所述自定義表單對(duì)像中,所述自定義表單對(duì)像包括自定義表單對(duì)像和帶有驗(yàn)證器的自定義子元素。7.根據(jù)權(quán)利要求1所述的表單驗(yàn)證方法,其特征在于,所述自定義子元素的數(shù)據(jù)結(jié)構(gòu)包括:表單項(xiàng)名稱屬性、對(duì)應(yīng)原始表單項(xiàng)和驗(yàn)證器列表。8.根據(jù)權(quán)利要求7所述的表單驗(yàn)證方法,其特征在于,所述驗(yàn)證器列表的結(jié)構(gòu)包括:驗(yàn)證器名和錯(cuò)誤提示信息。9.根據(jù)權(quán)利要求7所述的表單驗(yàn)證方法,其特征在于,S5中,所述調(diào)用所述自定義表單對(duì)像的提交方法,采用如下方法進(jìn)行實(shí)施: S501,判斷提交事件的屬性是否為空,如果是,則進(jìn)入下一個(gè)循環(huán);否則,調(diào)用該事件激發(fā)所述自定義表單對(duì)像的提交事件; S502,遍歷所述自定義子元素,依據(jù)所述原始表單的元素獲取數(shù)據(jù)值,再將所述數(shù)據(jù)值與所述驗(yàn)證器列表進(jìn)行驗(yàn)證匹配,如果驗(yàn)證失敗,則把驗(yàn)證信息加入失敗列表,否則,把所述數(shù)據(jù)值存入數(shù)據(jù)列表; S503,判斷所述失敗列表是否有失敗項(xiàng),如果有失敗項(xiàng),則通過(guò)失敗信息提示驗(yàn)證失敗原因,并停止提交,否則,繼續(xù); S504,通過(guò)驗(yàn)證后,判斷通過(guò)驗(yàn)證事件的屬性是否為空,如果為空,則進(jìn)入下一個(gè)循環(huán),否則,調(diào)用該事件激發(fā)所述自定義表單對(duì)像的驗(yàn)證通過(guò)事件; S505,異步請(qǐng)求服務(wù)器端,把所述數(shù)據(jù)列表發(fā)送給服務(wù)器端; S506,服務(wù)器端返回結(jié)果,判斷提交成功事件的屬性是否為空,如果不為空,則調(diào)用該事件激發(fā)所述自定義表單對(duì)像的提交成功事件,否則,直接提示返回結(jié)果。
【專利摘要】本發(fā)明公開(kāi)了一種表單驗(yàn)證方法,涉及表單驗(yàn)證技術(shù)領(lǐng)域。該方法通過(guò)簡(jiǎn)單配置即實(shí)現(xiàn)了對(duì)各種表單項(xiàng)進(jìn)行驗(yàn)證、收集數(shù)據(jù)、并通過(guò)異步請(qǐng)求把數(shù)據(jù)發(fā)送到服務(wù)器端的整個(gè)過(guò)程,簡(jiǎn)化了開(kāi)發(fā)及測(cè)試工作量,保持了代碼規(guī)范化和一致性,降低了出錯(cuò)機(jī)率,提高了開(kāi)發(fā)效率及代碼可靠性,從而降低了團(tuán)隊(duì)維護(hù)成本。
【IPC分類】G06F9/44
【公開(kāi)號(hào)】CN105426183
【申請(qǐng)?zhí)枴緾N201510771526
【發(fā)明人】林道輝
【申請(qǐng)人】天津車之家科技有限公司
【公開(kāi)日】2016年3月23日
【申請(qǐng)日】2015年11月12日