加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-15 19:14:30 所属栏目:asp.Net 来源:网络整理
导读:我有一个复选框组控件,我想要求用户至少检查一个框,无论他们检查每一个,或3,甚至只有一个。 在asp.net的验证控件的精神,我可以使用来强制这。我也使用Ajax验证扩展器,所以如果它可能看起来像其他控件,而不是一些cheesy服务器验证方法在codebehind将是
我有一个复选框组控件,我想要求用户至少检查一个框,无论他们检查每一个,或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我想。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读