首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

ASP.NET 表單輸入選擇性驗證:驗證控制項與 JavaScript 結合實作

     編輯:關於ASP.NET

ASP.NET 中有一系列驗證控制項,可方便驗證用戶輸入資料是否合法。雖這些驗證控制項強大且易用,但有個缺點:一般使用時,提交網頁會對整個網頁用戶輸入進行驗證。驗證控制項中無直接方法只驗證頁面某些部分輸入。本文介紹如何利用 ASP.NET 驗證控制項與 JavaScript 特性,完成只驗證頁面某些部分輸入功能。

為何有時只需驗證頁面某些部分輸入?

舉例,某些應用中,為用戶輸入方便,可能在同一頁面存在多個要求用戶輸入資料與提交資料表單(這在一些資訊系統後台管理系統中較常見)。而用戶每次操作,如用戶輸入每次進貨數量並提交,則只需驗證該提交資料,而頁面其他表單,如每次出貨數量,因用戶未填入資料,則不需校驗,這也提高應用效率。

下面看如何選擇性對表單輸入驗證,首先全面了解 ASP.NET 輸入驗證控制項一些屬性與用法。

首先介紹 CausesValidation 屬性。若不想對某按鈕提交事件驗證,只需將 CausesValidation 設為 false,如有一「取消」按鈕可這樣設:

<asp:button id="cmdCancel" runat="server" Text="Cancel" CausesValidation="False"></asp:button>

另一種寫法:

cmdcancel.causesvalidation=false;

這樣,一旦 CausesValidation 設為 false,無論客戶端驗證還是伺服端驗證都將不起作用。

若要選擇性驗證頁面某些部分,需使用驗證控制項某些方法與 JavaScript 實現,下列列表列舉驗證控制項一些方法與屬性:

名稱描述
Page_IsValid檢驗頁面所有輸入是否合法,返回布林值
Page_Validators目前頁面所有驗證控制項形成陣列
Page_ValidationActive布林值,表明是否執行驗證功能,設為 false 關閉驗證
Isvalid驗證客戶端輸入是否合法
ValidatorEnable(val, enable)將某驗證控制項作傳遞參數,啟動或禁用該控制項驗證功能,客戶端生效

特別介紹 ValidatorEnable 方法,可禁用某控制項驗證功能,如:

<script language="javascript">
ValidatorEnable(驗證控制項名稱, false)
</script>

若要禁用頁面所有驗證控制項,可配合 page_validators 陣列(元素為頁面所有驗證控制項),使用如下程式碼:

<script language="javascript">
for(i=0;i< Page_Validators.length;i++)
{
ValidatorEnable(Page_Validators[i], false)
}
</script>

實際使用時將上述程式碼搭配,即可實現選擇性驗證表單輸入,看個具體例子,如下圖:

上圖中,我們要實現:用戶只輸入 region name 值後點擊「get report」按鈕提交,伺服端只驗證 region name 輸入,用戶未輸入開始日期與結束日期則不校驗、不顯示錯誤;反之,用戶輸入開始與結束日期提交後,系統也不驗證 region name 輸入。

程式碼如下。

<script language="javascript">
function enableRegionValidators()
{
for(i=0;i< Page_Validators.length;i++)
{
ValidatorEnable(Page_Validators[i], false)
}
ValidatorEnable(rvRegion, true)
}
</script>
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved