表單驗證是Web開發中必不可少的一個環節,用來限制用戶輸入數據的規範和一致性。那麼如何可以簡化這一任務,讓開發人員經過簡單的屬性設置就能達到目的呢?正則表達式
FineUI在這一點上也是下足了功夫,比Asp.Net原生的CompareValidator、RangeValidator、RequiredFieldValidator等控件好用多了,眼見爲實,下面就來詳細介紹如何在FineUI進行表單驗證。markdown
如何驗證表單?
能夠經過以下兩步來完成表單的驗證。框架
好比爲TextBox設置Required=」true」和ShowRedStar=」true」兩個屬性,表示此輸入爲必填項,而且在標籤的後面顯示一個紅色的星號提示。詳細內容會在下一節講解。ui
ValidateForms:須要驗證的表單名稱列表(逗號分隔),能夠指定點擊按鈕時同時驗證多個表單。編碼
ValidateTarget:驗證失敗時提示對話框彈出位置,能夠是Target.Self、Target.Parent、Target.Top。在框架頁面中,你可能但願彈出的提示信息可以覆蓋整個頁面,而不單單是IFrame的部分頁面。orm
除此以外,還有一些屬性用來控制表單驗證的行爲,分爲三個級別的控制:ci
分別有FormMessageTarget、FormOffsetRight、FormLabelWidth、FormLabelSeparator幾個參數來設置,在《FineUI祕密花園(三) — 深刻Web.config》已有詳細描述。開發
一樣是這四個屬性,在《FineUI祕密花園(四) — 每一個頁面須要一個PageManager》一文中也有詳細的描述。字符串
能夠經過LabelWidth和LabelSeparator兩個屬性進行控制。get
表單控件與驗證相關的通用屬性
所謂的通用屬性指的是DropDownList、DatePicker、NumberBox、TextArea、TextBox等表單控件都有的驗證屬性,能夠分爲如下幾類:
Required(布爾):是否爲必填項
RequiredMessage(字符串):爲空時提示信息
Regex(字符串):必須知足的正則表達式
RegexMessage(字符串):不知足正則表達式時提示信息
RegexPattern(枚舉):正則表達式經常使用類型
RegexPattern.NUMBER:數字
RegexPattern.ALPHA:大寫和小寫字母
RegexPattern.ALPHA_NUMERIC:字母和數字
RegexPattern.ALPHA_UNDERLINE:字母和下劃線
RegexPattern.ALPHA_NUMERIC_UNDERLINE:字母數字和下劃線
RegexPattern.ALPHA_LOWER_CASE:小寫字母
RegexPattern.ALPHA_UPPER_CASE:大寫字母
RegexPattern.EMAIL:電子郵箱
RegexPattern.URL:網址
RegexPattern.POSTAL_CODE:郵政編碼
RegexPattern.IP_ADDRESS:IP地址
RegexPattern.IDENTITY_CARD:身份證號(不錯吧,還有國內的18位身份證號)
其中RegexPattern很是有用,內置了不少咱們常常用到的正則表達式。
MaxLength(整數):最大長度
MaxLengthMessage(字符串):超過最大長度時提示信息
MinLength(整數):最小長度
MinLengthMessage(字符串):少於最小長度時提示信息
CompareControl(字符串):須要比較的控件ID
CompareValue(字符串):須要比較的值
CompareOperator(枚舉):比較操做符
Operator.Equal(默認值)
Operator.GreaterThan
Operator.GreaterThanEqual
Operator.LessThan
Operator.LessThanEqual
Operator.NotEqual
CompareType(枚舉):比較的類型
CompareType.Float
CompareType.Int
CompareType.String(默認值)
CompareMessage(字符串):不知足比較條件時提示信息
其中,CompareType有時會起到關鍵的做用,好比在比較兩個數字輸入框的值時,若是不設置CompareType,則輸入值「3」會大於「10」。
表單控件特有的限制屬性
有一些控件擁有本身特有的限制屬性,下面會列舉出來。
MinDate(日期):最小日期限制
MaxDate(日期):最大日期限制
MinValue(浮點數):最小值
MaxValue(浮點數):最大值
NoNegative(布爾):不容許負數
NoDecimal(布爾):不容許小數
DecimalPrecision(整數):小數點後的位數(默認爲2)
客戶端驗證示例
1. 同時驗證多個表單
這個很是簡單,只須要在ValidateForms中指定要驗證表單的ID便可(逗號分隔)。