【问题标题】:make user select atleast one check box in check box list validation让用户在复选框列表验证中选择至少一个复选框
【发布时间】:2015-09-23 18:46:09
【问题描述】:

我正在尝试验证在复选框列表中至少选择一个复选框。我收到错误,例如无法验证“cvDaysofWeeklist”的 ControlToValidate 属性引用的控件“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;
    }

【问题讨论】:

    标签: jquery asp.net validation


    【解决方案1】:

    如果您使用 CustomValidator,则不应在 CheckBoxList 上设置 ControlToValidate 属性。

    如果将 ControlToValidate 设置为 CheckBoxList,.NET 将引发异常。

    【讨论】:

    • 谢谢我删除了。但看起来 ajaxToolkit:ValidatorCalloutExtender 不适用于 customvalidator?
    • 我通常远离 ajaxToolkit,因此无法帮助您。您可以在代码隐藏页面中定义验证器。在您的 CustomValidator 上设置 OnServerValidate 并在您的代码隐藏中定义一个函数。更多信息在这里。 msdn.microsoft.com/en-us/library/…
    猜你喜欢
    • 2011-03-13
    • 2015-11-06
    • 2017-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-09
    相关资源
    最近更新 更多