2010-02-09 38 views
2

這是一個奇怪的情況:我有一個表單,其上有多個數據輸入控件。通過選中複選框可以顯示/隱藏這些控件的子集。所有控件及其關聯的驗證器都屬於名爲「高級」的ValidationGroup,就像asp:Button Submit按鈕和ValidationSummary一樣。改變ASP.Net驗證控件忽略JavaScript隱藏字段

事情是,我不希望字段的子集被驗證,如果他們是隱藏的;只有在它們可見時才需要它們。

這樣做的一個非常不愉快的方法是讓另一個asp:按鈕顯示/隱藏以及額外的字段,並且正常的提交按鈕獲取顯示/隱藏,但添加另外幾個子集領域和它有點混亂...

任何想法?倒是十分想堅持我的嘗試和值得信賴的驗證控件...

謝謝

邁克K.

回答

0

this question。當他們驗證的控件被隱藏時,您應該禁用驗證器。這兩個答案顯示瞭如何禁用客戶端和服務器端的驗證器。

1

你能設置它,這樣,當你設置字段「隱藏」你還禁用驗證?

protected void chkBoxChecked(object sender, Eventargs e) { 
    validationControl.Enabled = false; 
} 

當然,您需要確保我們的複選框的AutoPostBack屬性設置爲True;

如果你想避免使用回傳/閃存,當然你也可能包住整個事情在一個UpdatePanel,或者你可以做這一切在javascript:

Using Javascript to disable validators

+0

這些都是用JavaScript來完成的(而不是煙霧和鏡子),這是爲了儘量減少PostBack。 – 2010-02-09 16:16:00

+1

嘗試在JavaScript然後:http://geekswithblogs.net/jonasb/archive/2006/08/11/87708.aspx – 2010-02-09 16:36:24

+0

我當然會傑克:-) – 2010-02-10 09:57:52