I can 前端-09 資料驗證與ASP.NET驗證控制元件
阿新 • • 發佈:2019-02-15
資料驗證
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>