ASP.NET與JavaScript輕鬆實現輸入資訊驗證

來源:互聯網
上載者:User

         無論是在我們平時上網、發郵件、辦公、學習和生活中經常會輸入一些資料,比如社會安全號碼、郵件帳號、數字、漢字、數字字母組合,或者符合某一個規格的輸入資料,這是我們想要的輸入結果,而結果往往令人差強人意,我們希望使用者輸入數字,他偏偏輸入漢字,因此軟體可能會出現未知錯誤,使用者使用系統的效率也會因此而降低,那麼怎麼才能解決這一問題呢?

         這需要用到一組驗證控制項,它們常用而方便為我們提供了驗證功能,下面讓我們看一看它們如何使用。

        

驗證控制項
驗證控制項名 驗證內容
RequireFieldValidator 驗證輸入的內容是否為空白
RangeValidator 檢查輸入的資訊在某範圍內
RegularExpressionValidator 檢查輸入資訊否則正則式
CompareValidator 輸入值與某個常數或者控制項比較
CustomValidator 服務端或用戶端自訂驗證規則
ValidationSummary 顯示驗證控制項的驗證錯誤摘要

      

驗證控制項相同屬性
屬性 說明
ControlToValidate 設定為要驗證控制項ID,無資料則顯示ErrorMessage中字串
ErrorMessage 表示當檢查不合法時出現的錯誤資訊

            當然,每個控制項根據作用不同有自己的特有屬性,下面就來看一下它們自己的特有屬性。

          【RequireFieldValidator】

              Display:錯誤資訊的顯示方式,Static表示控制項的錯誤資訊在頁面中佔有固定位置,如果沒有錯誤,它的顯示類似於Label控制項;Dynamic表示控制項錯誤資訊出現時佔用頁面空間;None表示錯誤出現時不顯示提示資訊,但是可以在ValidationSummary中顯示。

              Text:如果Display為Static,不出錯時,顯示該文本。

         代碼:

        <tr>            <td>                <asp:Label ID="Label1" runat="server" Text="使用者名稱:"></asp:Label>            </td>            <td>                <asp:TextBox ID="txtUserName" runat="server" ></asp:TextBox>                <asp:requiredfieldvalidator ID="require" ControlToValidate="txtUserName" Display="Dynamic" runat="server" errormessage="沒有輸入使用者名稱!請輸入!"></asp:requiredfieldvalidator>            </td>        </tr>

         在使用這個控制項時,如果這個控制項驗證不通過,那麼其他驗證控制項都不會起作用,可以說這個是驗證通過的前提,至於為什麼查了一下是這樣的,如果設定了ErrorMessage屬性,一旦輸入框為空白,無論你點擊了頁面的那個位置,都會有錯誤提示,而且,Page.IsValid屬性的值只能取True,沒有辦法取得False值,如果輸入框為空白時,頁面都沒有辦法重新整理,不能起作用,自己感覺這樣子用起來可能能夠達到驗證的目的,輸入錯誤時頁面不重新整理,可能能夠減少伺服器的負擔,但是給人的感覺非常不友好。

         【RangeValidator】

              MaximumValue:範圍的最大值。

              MinimumValue:範圍的最小值。

              Text:如果Display為Static,不出錯時,顯示該文本。

              Type:定義控制項輸入實值型別,如String、Integer、Double、Data、Currency等,輸入值先轉換,再驗證。

         【RegularExpressionValidator】

               ValidationExpression:指定的Regex。

             代碼:

        <tr>            <td>                <asp:Label ID="Label4" runat="server" Text="請輸入Email:"></asp:Label>            </td>            <td>                <asp:TextBox ID="txtEmail" runat="server"></asp:TextBox>                <asp:regularexpressionvalidator ID="regularexpressionvalidator1" runat="server" ControlToValidate="txtEmail" errormessage="Email格式不正確!" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"></asp:regularexpressionvalidator>            </td>        </tr>

 

         【CompareValidator】

               Equal:當比較的兩個值相等時,通過驗證。

               NotEqual:當比較的兩個值不相等時,通過驗證。

               GreaterThan:當被驗證的值大於指定的常數值或控制項值時,通過驗證。

               GreaterThanEqual:當被驗證的值大於等於被驗證的常數值或控制項值時,通過驗證。

               LessThan:當被驗證的值小於指定的常數值或控制項值時,通過驗證。

               LessThanEqual:當被驗證的值小於等於被驗證的常數值或控制項值時,通過驗證。

               DataTyeCheck:當被驗證的值與指定的常數值或控制項實值型別相同時,通過驗證。

               ControlToCompare:要進行比較的控制項ID.

               ValueToCompare:指定要比較的常用值。

          

         代碼:

        <tr>            <td>                <asp:Label ID="Label3" runat="server" Text="確認密碼:"></asp:Label>            </td>            <td>                <asp:TextBox ID="txtPassWordFirm" runat="server"></asp:TextBox>                <asp:CompareValidator ID="CompareValidator1" runat="server" ControlToValidate="txtPassWordFirm"                    ControlToCompare="txtPassWord" ErrorMessage="兩次輸入密碼不一致!"></asp:CompareValidator>            </td>        </tr>

           輸入資訊驗證是每個系統或軟體必不可少的功能,安全驗證是增強系統安全性、可靠性的前提保證,輸入驗證智能化是我們發展的趨勢,根據使用者輸入意圖,智能輸入、智能提示資訊,才會是軟體更方便使用者,例如資料字典的使用,可以自動匹配使用者輸入資訊;驗證功能不只有控制項可以實現,還可以用一些指令碼如JavaScript來處理用戶端指令碼驗證,減少伺服器負擔,我們需要更智能化的驗證方式。

          JS表單驗證:http://blog.163.com/qinyixin_0711/blog/static/139340070201071823916331/

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.