2011-03-11 34 views
0

我有一系列帶有必填字段驗證程序的文本框和一個帶有必需字段驗證程序的textarea複選框和點擊其中的一個按鈕我正在檢查驗證所有驗證組都有相同的驗證組 檢查複選框我禁用文本框以及它們的驗證並啓用文本區域的驗證,但是如果未選中複選框,則啓用所有控件但禁用textarea的驗證問題是如果未選中複選框並且插入值的所有文本框,但不是文本區域和點擊後面的代碼上的保存按鈕我在檢查之前檢查Page.isValid值到數據庫,但此Page.isValid總是返回false由於文本區域所需的字段驗證程序,即使它被禁用。Page.isValid有條件驗證中的問題

這個JavaScript代碼是

// Function for enabling/disabling validation 
function enableValidation(element, enable) 
{ 
    $.each(Page_Validators, function() 
    { 
     if (this.controltovalidate == element.id) 
     { 
      ValidatorEnable(this, enable); 
     } 
    }); 
} 

// Funcion Called on the click event of checkbox in 
// Provide Project Feedback popup in TestCATFeedback page. 
function disableOtherElements(e) 
{ 
    if (e.checked) 
    { 
     $('.disableIt').each(function() 
     { 
      enableValidation(this, false); 
     }).attr('disabled', true).css('opacity', 0.3); 
     $('.noteBox').each(function() 
     { 
      enableValidation(this, true); 
     }); 

     $('.noteBox').focus(); 
    } 
    else 
    { 
     $('.disableIt').each(function() 
     { 
      enableValidation(this, true); 
     }).removeAttr('disabled').css('opacity', 1); 
     $('.noteBox').each(function() 
     { 
      enableValidation(this, false); 
     }); 
    } 
} 

這裏disableIt是分配給每一個TextBox控件和notebox的類被分配給textarea的

類如何解決這個問題,如果驗證控制被禁用,然後不檢查頁面驗證並返回true Page.isValid檢查

回答

0

禁用客戶端驗證控件和頁面加載啓用/禁用驗證的控件根據要求。

0

我能找到這個問題的唯一解決方案是創建一個「bPageIsValidated」變量。這個變量默認爲「false」。然後,在每個服務器端驗證器中,它被設置爲true。這讓你知道驗證是否已經發生。這是一個非常簡單和直接的技術,所以我認爲它應該很小心地處理這個問題。