如何验证内容页中的复选框列表
本文关键字:复选框 列表 何验证 验证 | 更新日期: 2023-09-27 18:08:29
我在一个母版页的内容页的复选框列表,我可以选择多个值并保存在数据库中。如何确认在单击提交按钮时选中了最少一个复选框。
你可以这样做。
在JavaScript中控件位于内容页还是母版页
<asp:CheckBoxList ID="chkModuleList"runat="server" />
<asp:CustomValidator runat="server" ID="cvmodulelist"
ClientValidationFunction="ValidateModuleList"
ErrorMessage="Please Select Atleast one Module" />
// javascript to add to your aspx page
function ValidateModuleList(source, args)
{
var chkListModules= document.getElementById ('<%= chkModuleList.ClientID %>');
var chkListinputs = chkListModules.getElementsByTagName("input");
for (var i=0;i<chkListinputs .length;i++)
{
if (chkListinputs [i].checked)
{
args.IsValid = true;
return;
}
}
args.IsValid = false;
}
更新:或者你可以用这种方法,让任意css-class
,比如company
。
有一个:checked
(http://api.jquery.com/checked-selector/)选择器,你可以使用:
<script>
$(document).ready(function() {
$(".company input").click(function() {
var cnt = $(".company input:checked").length;
if (cnt == 0)
{
// none checked
}
else
{
// any checked
}
});
});
</script>
你可能想在这些复选框的容器上添加(或使用)一个id,以优化选择器的速度
对于asp.net在控件上混淆客户端id,您可以使用
$('<%= MyControl.ClientID %>')
引用:
- 检查一个复选框是否在客户端一组复选框中被选中 如何验证用户选择了至少一个复选框?
多多。Validators, GitHub上的一个库,也很好地处理了这个问题。
<asp:CheckBoxList ID="cblCheckBoxList" runat="server">
<asp:ListItem Text="Check Box (empty)" Value="" />
<asp:ListItem Text="Check Box 1" Value="1" />
<asp:ListItem Text="Check Box 2" Value="2" />
<asp:ListItem Text="Check Box 3" Value="3" />
</asp:CheckBoxList>
<Dado:RequiredFieldValidator runat="server" ControlToValidate="cblCheckBoxList" ValidationGroup="vlgSubmit" />
例子codebehind.aspx.cs
btnSubmit.Click += (a, b) =>
{
Page.Validate("vlgSubmit");
if (Page.IsValid) {
// Validation Successful
}
};
https://www.nuget.org/packages/Dado.Validators/