2011-02-28 64 views
1

我有一個面板,顯示爲幾個文本框控件與幾個驗證控件和點擊按鈕,我正在檢查驗證現在我想添加一個複選框,檢查它應該禁用一些控制並從他們刪除驗證屬性和取消選中它應用相同我能夠使這些控件被禁用,但仍然點擊該按鈕,它要求驗證這些控件有條件地去除驗證屬性

關於點擊事件的複選框我打電話一個javascript函數並將禁用屬性應用於某些控件

function disableOtherElements(e) 
{ 
    var id = e.checked; 
    if (id) 
    { 
     $('.dd').attr('disabled', true); 
    } 
    else 
    { 
     $('.dd').removeAttr('disabled'); 
    } 
} 

dd是分配給我想要禁用的所有控件的類。 我必須做些什麼來刪除驗證屬性

回答

1

實現該目的的一種方法是使用由ASP.NET驗證器公開的client-side API

首先,你必須遍歷Page_Validators找到所有目標元素上的校驗,然後使用ValidatorEnable()啓用或禁用驗證:

function enableValidation(element, enable) 
{ 
    $.each(Page_Validators, function() { 
     if (this.controltovalidate == element.id) { 
      ValidatorEnable(this, enable); 
     } 
    }); 
} 

function disableOtherElements(e) 
{ 
    if (e.checked) { 
     $('.dd').each(function() { 
      enableValidation(this, false); 
     }).attr('disabled', true); 
    } else { 
     $('.dd').each(function() { 
      enableValidation(this, true); 
     }).removeAttr('disabled'); 
    } 
}