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;
}
谢谢我删除。但看起来像ajaxToolkit:ValidatorCalloutExtender不能与customvalidator一起使用? – rampantNinja
我通常远离ajaxToolkit,并且无法在那里为您提供帮助。您可以在代码隐藏页面中定义验证器。在您的CustomValidator上设置OnServerValidate并在代码隐藏中定义一个函数。更多信息在这里。 https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.customvalidator(v=vs.110).aspx –