asp.net – 如何验证用户选择至少一个复选框?

前端之家收集整理的这篇文章主要介绍了asp.net – 如何验证用户选择至少一个复选框?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个复选框组控件,我想要求用户至少检查一个框,无论他们检查每一个,或3,甚至只有一个。

在asp.net的验证控件的精神,我可以使用来强制这。我也使用Ajax验证扩展器,所以如果它可能看起来像其他控件,而不是一些cheesy服务器验证方法在codebehind将是很好。

<asp:CheckBoxList RepeatDirection="Horizontal" RepeatLayout="Table" RepeatColumns="3" ID="ckBoxListReasons" runat="server">
    <asp:ListItem Text="Preliminary Construction" Value="prelim_construction" />
    <asp:ListItem Text="Final Construction" Value="final_construction" />
    <asp:ListItem Text="Construction Alteration" Value="construction_alteration" />
    <asp:ListItem Text="Remodel" Value="remodel" />
    <asp:ListItem Text="Color" Value="color" />
    <asp:ListItem Text="Brick" Value="brick" />
    <asp:ListItem Text="Exterior Lighting" Value="exterior_lighting" />
    <asp:ListItem Text="Deck/Patio/Flatwork" Value="deck_patio_flatwork" />
    <asp:ListItem Text="Fence/Screening" Value="fence_screening" />
    <asp:ListItem Text="Landscape - Front" Value="landscape_front" />
    <asp:ListItem Text="Landscape - Side/Rear" Value="landscape_side_rear" />
    <asp:ListItem Text="Other" Value="other" />
</asp:CheckBoxList>

解决方法

这很容易做验证服务器端,但我假设你想做它的客户端?

JQuery可以很容易地做到这一点,只要你有一些东西,所有的复选框控件有共同使用作为选择器,如类(CssClass在你的.NET控件)。您可以创建一个简单的JQuery函数并将其连接到ASP.NET自定义验证器。记住如果你去自定义验证器路由,以确保你检查它的服务器端,以及如果javascript不工作,你不会得到一个免费的服务器端检查像其他.NET验证器。

有关自定义验证器的更多信息,请查看以下链接www.asp.net
MSDN

你不需要使用JQuery,它只是使JavaScript函数迭代,看看所有的复选框控件更容易,但你可以只使用香草javascript,如果你喜欢。

这里是一个例子,我发现在:Link to original

<asp:CheckBoxList ID="chkModuleList"runat="server" >
</asp:CheckBoxList>

<asp:CustomValidator runat="server" ID="cvmodulelist"
  ClientValidationFunction="ValidateModuleList"
  ErrorMessage="Please Select Atleast one Module" ></asp:CustomValidator>

// 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;
}

边注:JQuery只是一个小js文件包括你需要添加到你的页面。一旦你拥有它,你可以使用所有的JQuery你喜欢。没有什么可以安装,它将完全支持在下一个版本的Visual Studio我想。

猜你在找的asp.Net相关文章