1. 程式人生 > >I can 前端-09 資料驗證與ASP.NET驗證控制元件

I can 前端-09 資料驗證與ASP.NET驗證控制元件

資料驗證

what

對使用者輸入的資料的正確性進行驗證,常見是是否有輸入、格式、範圍、比較等

how

  • 寫程式碼在後端驗證
    • 缺點在於:資料需要傳遞到後臺才進行驗證,會造成伺服器壓力變大
    • 缺點在於:還要寫程式碼,寫程式碼意味著會出錯
  • 寫JS在前端驗證
    • 缺點在於:還要寫程式碼,寫程式碼意味著會出錯
  • 使用ASP.NET驗證控制元件
    • 缺點在於:啟動時,頁面會生成很多你不認識的東西
  • 使用JQuery等框架的驗證外掛

ASP.NET 資料驗證控制元件

非空驗證控制元件

判斷是否輸入

<div>

   使用者名稱:<asp:TextBox ID="txtUserName"
runat="server">
</asp:TextBox> <asp:RequiredFieldValidator ID="RequiredFieldValidator1" ErrorMessage="請輸入使用者名稱!" ControlToValidate="txtUserName" ForeColor="#FF3300"> </asp:RequiredFieldValidator> <br /> <br /> <br /> <asp:Button
ID="Button1" runat="server" Text="提交註冊" />
</div>

這裡寫圖片描述

1流程

        當點選【提交註冊】時,觸發驗證控制元件

2 使用

        從Toolbox中尋找【Validation】一欄中需要的驗證控制元件

        【ControlToValidate】屬性 = 驗證控制元件的ID
        【ErrorMessage】屬性 = 驗證不通過時顯示的文字
        【ForeColor】屬性 = 驗證不通過時顯示的文字顏色

比較驗證控制元件

判斷該輸入與另一個輸入是否相同

<div
>
使用者密碼:<asp:TextBox ID="txtPwd" runat="server" TextMode="Password"></asp:TextBox> <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="txtPwd" ErrorMessage="請輸入密碼!" ForeColor="#FF3300"></asp:RequiredFieldValidator> <br /> <br /> 密碼確認:<asp:TextBox ID="txtConfirmPwd" runat="server" TextMode="Password"></asp:TextBox> <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="txtConfirmPwd" Display="Dynamic" ErrorMessage="請再次輸入密碼!" ForeColor="#FF3300"></asp:RequiredFieldValidator> <asp:CompareValidator ID="CompareValidator1" runat="server" ControlToCompare="txtPwd" ControlToValidate="txtConfirmPwd" Display="Dynamic" ErrorMessage="兩次輸入密碼不正確!" ForeColor="#FF3300"></asp:CompareValidator> <br /> <br /> <asp:Button ID="btnSubmit" runat="server" Text="提交註冊" /> </div>

範圍驗證控制元件

驗證輸入是否在一個範圍內

<form id="form1" runat="server">

  學員體重:<asp:TextBox ID="txtWeight" runat="server"></asp:TextBox>

  <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="txtWeight" Display="Dynamic" ErrorMessage="請輸入體重!" ForeColor="#FF3300"></asp:RequiredFieldValidator>

  <asp:RangeValidator ID="RangeValidator1" runat="server" ControlToValidate="txtWeight" Display="Dynamic" ErrorMessage="學員體重必須在60-70kg之間!" ForeColor="#FF3300" MaximumValue="70" MinimumValue="60"></asp:RangeValidator>

  <br />
  <br />

  出生日期:<asp:TextBox ID="txtBirthday" runat="server"></asp:TextBox>

  <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="txtBirthday" Display="Dynamic" ErrorMessage="請輸入出生日期!" ForeColor="#FF3300"></asp:RequiredFieldValidator>

  <asp:RangeValidator ID="RangeValidator2" runat="server" ControlToValidate="txtBirthday" ErrorMessage="出生日期必須在1990-1-1到2000-1-1之間" ForeColor="#FF3300" MaximumValue="2000-1-1" MinimumValue="1990-1-1" Type="Date"></asp:RangeValidator>

  <br />
  <br />

 <asp:Button ID="btnSubmit" runat="server" Text="提交註冊" />
</form>

正則表示式驗證控制元件

這裡寫圖片描述

已經帶有部分寫好的正則表示式

<body>
    <form id="form1" runat="server">
    <div>    
    電子郵件:<asp:TextBox ID="txtEmail" runat="server"></asp:TextBox>
    <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="txtEmail" ErrorMessage="電子郵件格式不正確!" ForeColor="#FF3300" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"></asp:RegularExpressionValidator>

    <br />
    <br />
    <asp:Button ID="btnSubmit" runat="server" Text="提交註冊" />
    </div>
    </form>
</body>

驗證彙總控制元件

這個控制元件應該很少用到,他將所有的驗證彙總到一起顯示

<body>
    <form id="form1" runat="server">

    學員體重:<asp:TextBox ID="txtWeight" runat="server"></asp:TextBox>
    <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"
            ControlToValidate="txtWeight" ErrorMessage="請輸入體重!"
            ForeColor="#FF3300">*</asp:RequiredFieldValidator>
    <asp:RangeValidator ID="RangeValidator1" runat="server"
            ControlToValidate="txtWeight" Display="None" ErrorMessage="體重應該在60-70kg之間!"
            ForeColor="#FF3300" MaximumValue="70" MinimumValue="60" Type="Integer"></asp:RangeValidator>

        <br />
        <br />

    出生日期:<asp:TextBox ID="txtBirthday" runat="server"></asp:TextBox>
    <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server"
            ControlToValidate="txtBirthday" ErrorMessage="請輸入出生日期!"
            ForeColor="#FF3300">*</asp:RequiredFieldValidator>
    <asp:RangeValidator ID="RangeValidator2" runat="server"
            ControlToValidate="txtBirthday" Display="None"
            ErrorMessage="出生日期必須在在1990-1-1至2000-1-1之間" ForeColor="#FF3300"
            MaximumValue="2000-1-1" MinimumValue="1990-1-1" Type="Date"></asp:RangeValidator>

        <br />
        <br />

   <asp:Button ID="btnSubmit" runat="server" Text="提交註冊" />

        <br />
        <br />

    <asp:ValidationSummary ID="ValidationSummary1" runat="server" ForeColor="#FF3300" />
        <br />
    </form>
</body>