2015-09-23 38 views
0

我想在複選框列表中至少選擇一個複選框進行驗證。我得到錯誤,如'cvDaysofWeeklist'的ControlToValidate屬性所引用的Control'CheckBoxListDaysofWeek'無法驗證。下面是我的asp代碼。讓用戶在複選框列表驗證中選擇至少一個複選框

<asp:CheckBoxList ID="CheckBoxListDaysofWeek" runat="server" RepeatDirection="Horizontal" CssClass="formatcheckboxlist" ValidationGroup="ReportSearch" CausesValidation="true"> 
             <asp:ListItem Text="Mon" Value="1" Selected="True"></asp:ListItem> 
             <asp:ListItem Text="Tue" Value="2" Selected="True"></asp:ListItem> 
             <asp:ListItem Text="Wed" Value="3" Selected="True"></asp:ListItem> 
             <asp:ListItem Text="Thu" Value="4" Selected="True"></asp:ListItem> 
             <asp:ListItem Text="Fri" Value="5" Selected="True"></asp:ListItem> 
             <asp:ListItem Text="Sat" Value="6"></asp:ListItem> 
             <asp:ListItem Text="Sun" Value="7"></asp:ListItem> 
            </asp:CheckBoxList> 
            <ams:AMSCustomValidator ID="cvDaysofWeeklist" runat="server" ClientValidationFunction="ValidateDaysofWeekList" ControlToValidate="CheckBoxListDaysofWeek" 
             Display="None" ValidationGroup="ReportSearch" 
             Resource="Content" ResourceName="TAGSEARCH_TEXTBOXMANUFACTURESTARTDATEVALIDATOR" /> 
             <ajaxToolkit:ValidatorCalloutExtender ID="vce_DaysofWeek" runat="server" TargetControlID="cvDaysofWeeklist" HighlightCssClass="HighlightField"></ajaxToolkit:ValidatorCalloutExtender>` 

和我的javascript功能

function ValidateDaysofWeekList(source, args) { 
     var chkListDow = document.getElementById('<%= CheckBoxListDaysofWeek.ClientID %>'); 
     var chkListinputs = chkListDow.getElementsByTagName("input"); 
     for (var i = 0; i < chkListinputs.length; i++) { 
      if (chkListinputs[i].checked) { 
       args.IsValid = true; 
       return; 
      } 
     } 
     args.IsValid = false; 
    } 

回答

0

如果您使用的CustomValidator,你不應該設置你的CheckBoxList ControlToValidate屬性。

如果將ControlToValidate設置爲CheckBoxList,.NET將引發異常。

+0

謝謝我刪除。但看起來像ajaxToolkit:ValidatorCalloutExtender不能與customvalidator一起使用? – rampantNinja

+0

我通常遠離ajaxToolkit,並且無法在那裏爲您提供幫助。您可以在代碼隱藏頁面中定義驗證器。在您的CustomValidator上設置OnServerValidate並在代碼隱藏中定義一個函數。更多信息在這裏。 https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.customvalidator(v=vs.110).aspx –

相關問題