.net學習之表單驗證validator
表單驗證是很常見的,一般除了前端需要驗證資料是否為空,還需要驗證資料格式是否符合要求,一般使用正則表示式驗證,當然,除了前端,後端一般也需要將資料進行驗證,比如客戶端(瀏覽器)將js等前端指令碼禁用,點選提交,那麼不符合規範的資料就會提交到後臺,這回導致系統出現問題。
.net中提供了常用的validator
通用的屬性是:
- CtrolToValidate:也就是指待驗證的控制元件id,可以是TextBox,也可以是其他的一些控制元件
- ErrorMessage:也就是這個驗證出現不符合驗證需求時,需要顯示的提示資訊
- Display:可取值Static和Dynamic和None,一個是固定位置,另一個是動態位置(如果前面有空格,會移動到前面)另一個是無,也就是不顯示
- ValidationGroup:驗證組,其他控制元件也有,比如button,可以多個控制元件使用同一個ValidationGroup值,以組為單位進行驗證,後面demo會用到
- Text屬性:未通過驗證時驗證控制元件所在位置的顯示資料,如果不指定就會顯示errorMessage的內容
- SetFocusOnError:設定游標在驗證不通過時,移動到該控制元件校驗的內容所在位置
其餘還有很多,不在此一一列舉。
基本的校驗控制元件
比如:
CompareValidator:
可以驗證值的大小(比如數字大小),值的型別,比如時間格式(date),
特有屬性:ControlToCompare
RangeValidator:
範圍驗證,比如輸入的資料長度,比如數字大小是否在某一個區間,
特有屬性也就是MaximumValue和MiniumValue,還有個是Type,表明這個Max和Min是來描述什麼型別,或者是什麼屬性的範圍,比如字元個數,還是數字大小
RegularExpressionValidator:
正則表示式驗證,通過指定的正則表示式,來驗證資料是否符合要求,.net自帶的有電話格式驗證,郵箱格式驗證等等
特有屬性就是:ValdationExpression,正則表示式串
ValidationSummary:
這個控制元件的作用就是將一個頁面上的或者是一個group中的所有validator不通過的errorMessage集中顯示的控制元件
demo:
使用一個簡單demo將上面的幾種控制元件基本都用到了
本demo思路,當用戶點選按鈕“save”時將表單提交到後端,觸發表單驗證
Error message 1.這個位置是使用了一個ValidationSummary控制元件,效果效果是這樣的
如果都不輸入(RequireFieldValidator):
日期格式輸入異常(CompareValidator):
coverage輸入非數字(RegularExpressionValidator):
分組驗證(ValidationGroup)
如果使用的分組驗證,那麼表單的“save”按鈕,需要新增屬性ValidationGroup=“123”來觸發組驗證,否則即使在ValidationSummary指定了valiodationGroup屬性,點選save,也不會顯示相應組的messageError,ValidationSummary只會顯示在同一個ValidationGroup的驗證控制元件相關的error message
<asp:Button ID="saveButton" runat="server" Text="Save" OnClick="saveButton_Click" ValidationGroup="123" />
將Name的textBoX的ValidationGroup屬性設定為 “123”
ValidationSummary的ValidationGroup也設定為“123”
save按鈕的ValidationGroup也設定為“123”
不輸入name,然後點選save
測試:
輸入name,不在save 按鈕所在ValidationGroup的Validator不生效