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