|
其實(shí)我自己也就能簡(jiǎn)單用用js而已,但是呢,相對(duì)很多初學(xué)者來(lái)說(shuō)多懂了點(diǎn)Know How所以斗膽孟浪一下,將一些所得記錄下來(lái),以供更多的初學(xué)者能夠知道一個(gè)東西的實(shí)現(xiàn)過(guò)程,省去在源碼里摸索的過(guò)程。
在表單程序中,在頁(yè)面上需要很多的Js代碼來(lái)驗(yàn)證表單,每一個(gè)field是否必須填寫(xiě),是否只能是數(shù)字,是否需要ajax到遠(yuǎn)程驗(yàn)證,blablabla。如果一個(gè)一個(gè)單獨(dú)寫(xiě)勢(shì)必非常的繁瑣,所以我們的第一個(gè)目標(biāo)就是構(gòu)建一個(gè)類似DSL的東西,用表述的語(yǔ)句而非控制語(yǔ)句來(lái)實(shí)現(xiàn)驗(yàn)證。
其次一個(gè)個(gè)單獨(dú)寫(xiě)的話還有一個(gè)問(wèn)題就是必須全部驗(yàn)證通過(guò)才能提交,但是單獨(dú)驗(yàn)證會(huì)因?yàn)檫@個(gè)特征而增加很多額外的控制代碼,且經(jīng)常會(huì)驗(yàn)證不全面。所以第二個(gè)目標(biāo)就是能夠全面的整合整個(gè)驗(yàn)證的過(guò)程。
最后不能是一個(gè)無(wú)法擴(kuò)展的一切寫(xiě)死的實(shí)現(xiàn),必要的擴(kuò)展性還是要的。
首先,我們需要一個(gè)能夠描述對(duì)字段驗(yàn)證的類?
function Field(params){ this.field_id=params.fid; //要驗(yàn)證的字段的ID this.validators=params.val; //驗(yàn)證器對(duì)象數(shù)組 this.on_suc=params.suc; //當(dāng)驗(yàn)證成功的時(shí)候執(zhí)行的事件 this.on_error=params.err; //當(dāng)驗(yàn)證失敗的時(shí)候執(zhí)行的事件 this.checked=false; //是否通過(guò)驗(yàn)證 }
it知識(shí)庫(kù):手把手教你自己寫(xiě)一個(gè)js表單驗(yàn)證框架,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。