數(shù)據(jù)校驗(yàn)級(jí)別

2024-03-07 18:38 更新

校驗(yàn)級(jí)別

校驗(yàn)器一共支持四種校驗(yàn)級(jí)別設(shè)置:info,ok,warn,error??梢酝ㄟ^(guò)校驗(yàn)器的defaultResultState屬性設(shè)定: 當(dāng)數(shù)據(jù)校驗(yàn)不通過(guò)時(shí),不同的defaultResultState在瀏覽器中有不同的顯示效果:

默認(rèn)的校驗(yàn)級(jí)別都是error. sample.chapter07的Products范例中中,如果我們不輸入產(chǎn)品名稱(chēng),且把產(chǎn)品價(jià)格修改為5,再單擊“確定”按鈕進(jìn)行數(shù)據(jù)保存時(shí),則數(shù)據(jù)校驗(yàn)未通過(guò)會(huì)出現(xiàn)錯(cuò)誤提示: 通過(guò)這種機(jī)制,確??蛻舳藷o(wú)法直接將未通過(guò)校驗(yàn)的數(shù)據(jù)發(fā)送到服務(wù)器端進(jìn)行存儲(chǔ)。 如果我們希望一個(gè)表單中部分編輯框做數(shù)據(jù)校驗(yàn)的時(shí)候給用戶一些提示信息,但是如果用戶最終沒(méi)有完全按照我們的要求輸入信息,并且要允許用戶保存數(shù)據(jù)。則我們可以利用校驗(yàn)級(jí)別實(shí)現(xiàn)這個(gè)功能。將部分校驗(yàn)器的校驗(yàn)級(jí)別調(diào)整為error之外的級(jí)別。 例如我們?cè)诿Q(chēng)為productName的PropertyDef中添加一個(gè)LengthValidator,并設(shè)定屬性如下: 我們?cè)O(shè)定productName的長(zhǎng)度要求在4到20個(gè)字符,并且設(shè)定其defaultResultState的屬性為info。 刷新原來(lái)的頁(yè)面,并編輯其中的一個(gè)產(chǎn)品,將其中的產(chǎn)品名稱(chēng)修改為3個(gè)字符以內(nèi),就能看到下圖中的提示信息。 但是由于其校驗(yàn)級(jí)別被設(shè)置為info,因此當(dāng)我們單擊確定按鈕的時(shí)候還是可以繼續(xù)完成保存動(dòng)作。

acceptValidationState

上例中,當(dāng)我們降低一個(gè)校驗(yàn)器的defaultResultState就可以保證數(shù)據(jù)的提交,系統(tǒng)默認(rèn)為error才不允許提交,這個(gè)默認(rèn)約定是通過(guò)DataType的acceptValidationState屬性控制的, 可以根據(jù)實(shí)際需要調(diào)整這個(gè)屬性的設(shè)定。 例如我們將DataType的acceptValidationState屬性修改為warn: 另外再調(diào)整DataType下unitPrice的RangeValidator屬性: 保存當(dāng)前視圖的配置。 并刷新之前的網(wǎng)頁(yè)做測(cè)試 產(chǎn)品價(jià)格中輸入0,我們可以看到一個(gè)警告信息,另單擊保存按鈕會(huì)發(fā)現(xiàn)由于有warn級(jí)別的數(shù)據(jù)校驗(yàn)沒(méi)有通過(guò),導(dǎo)致最終的數(shù)據(jù)保存無(wú)法通過(guò)。# 數(shù)據(jù)校驗(yàn)級(jí)別

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)