2014-11-25 70 views
0

再次專家,隱藏控件對於驗證仍然具有挑戰性?

在頁面loade,這個dropdownList框,由deffault是不可見的。

<td> 
    <asp:DropDownList ID="LongDistance" runat="server" style="display:none;" > 
     <asp:ListItem value="2">$2 per mile</asp:ListItem> 
     <asp:ListItem value="4">$4 per mile</asp:ListItem> 
    </asp:DropDownList> 
    <asp:RequiredFieldValidator runat="server" id="RequiredFieldValidator4" 
    ControlToValidate="tripType" ErrorMessage = "please select long distance type!" 
    display="Dynamic" style="color: #FF0000; font-size: small" /> 
</td> 

如果滿足某些條件,它就變得可見。

我的問題是爲什麼用戶仍然面臨挑戰做出選擇?

我想任何看不見的控件不要挑戰用戶進行選擇,除非控件可見。

任何想法如何解決這個問題?

+0

你使用JS來顯示/隱藏DropDownList嗎?如果是這樣,那麼AFAIK RequiredFieldValidator仍然會驗證該控件是否仍然在頁面上。我不認爲它會檢查控制的可見性。您可能想使用客戶端驗證,而不是:http://msdn.microsoft.com/en-us/library/aa479045.aspx#aspplusvalid_clientside – RSquared 2014-11-25 04:40:28

回答

0

您應該尋找validation Groups。如果您必須在兩個不同的按鈕上進行不同的驗證。

驗證工作作爲數據發佈到服務器,即使它不可見。如果有任何validation controls正在使用,驗證控件在提交按鈕上工作並驗證每個輸入。

+0

非常感謝。 @jasonW,如果控件更改爲visibility =「true」會發生什麼? – Tairoc 2014-11-25 05:25:07

0

當您設置控件的可見性時,還應該設置RequiredFieldValidator4驗證程序的Enabled屬性以匹配它正在驗證的控件的可見性。驗證器的Enabled屬性控制驗證是否觸發。