Web開發-表單驗證

表單驗證是Web開發中必不可少的一個環節,用來限制用戶輸入數據的規範和一致性。那麼如何可以簡化這一任務,讓開發人員經過簡單的屬性設置就能達到目的呢?正則表達式

FineUI在這一點上也是下足了功夫,比Asp.Net原生的CompareValidator、RangeValidator、RequiredFieldValidator等控件好用多了,眼見爲實,下面就來詳細介紹如何在FineUI進行表單驗證。markdown

如何驗證表單?
能夠經過以下兩步來完成表單的驗證。框架

  1. 爲每一個表單控件設置驗證屬性。

好比爲TextBox設置Required=」true」和ShowRedStar=」true」兩個屬性,表示此輸入爲必填項,而且在標籤的後面顯示一個紅色的星號提示。詳細內容會在下一節講解。ui

  1. 經過按鈕屬性設置須要驗證的表單。

ValidateForms:須要驗證的表單名稱列表(逗號分隔),能夠指定點擊按鈕時同時驗證多個表單。編碼

ValidateTarget:驗證失敗時提示對話框彈出位置,能夠是Target.Self、Target.Parent、Target.Top。在框架頁面中,你可能但願彈出的提示信息可以覆蓋整個頁面,而不單單是IFrame的部分頁面。orm

除此以外,還有一些屬性用來控制表單驗證的行爲,分爲三個級別的控制:ci

  1. Web.config級別的控制

分別有FormMessageTarget、FormOffsetRight、FormLabelWidth、FormLabelSeparator幾個參數來設置,在《FineUI祕密花園(三) — 深刻Web.config》已有詳細描述。開發

  1. PageManager級別的控制

一樣是這四個屬性,在《FineUI祕密花園(四) — 每一個頁面須要一個PageManager》一文中也有詳細的描述。字符串

  1. Form、SimpleForm表單級別的控制

能夠經過LabelWidth和LabelSeparator兩個屬性進行控制。get

表單控件與驗證相關的通用屬性
所謂的通用屬性指的是DropDownList、DatePicker、NumberBox、TextArea、TextBox等表單控件都有的驗證屬性,能夠分爲如下幾類:

  1. 是否爲必填項

Required(布爾):是否爲必填項
RequiredMessage(字符串):爲空時提示信息

  1. 正則表達式

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很是有用,內置了不少咱們常常用到的正則表達式。

  1. 長度限制

MaxLength(整數):最大長度
MaxLengthMessage(字符串):超過最大長度時提示信息
MinLength(整數):最小長度
MinLengthMessage(字符串):少於最小長度時提示信息

  1. 比較(包括與控件值比較、與常量比較)

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」。

表單控件特有的限制屬性
有一些控件擁有本身特有的限制屬性,下面會列舉出來。

  1. 日期選擇控件(DatePicker)

MinDate(日期):最小日期限制
MaxDate(日期):最大日期限制

  1. 數字輸入框(NumberBox)

MinValue(浮點數):最小值
MaxValue(浮點數):最大值
NoNegative(布爾):不容許負數
NoDecimal(布爾):不容許小數
DecimalPrecision(整數):小數點後的位數(默認爲2)

客戶端驗證示例
1. 同時驗證多個表單

這個很是簡單,只須要在ValidateForms中指定要驗證表單的ID便可(逗號分隔)。

相關文章
相關標籤/搜索