应在 asp.net 中检查至少一个复选框的复选框验证

发布于 2024-10-18 07:11:05 字数 123 浏览 6 评论 0原文

我的 asp.net 表单有 4 个复选框。不是复选框列表。这 4 个具有相同名称的 ValidationGroup 属性的复选框表示“chkValied”。我在那里添加了自定义验证器。现在至少要检查复选框应该检查这些。该怎么办 ?

I have asp.net form having 4 check boxes. not check box list. these 4 check boxes having the ValidationGroup property with same name say "chkValied". I have added Custom Validator there. now want to check at least on check box should be check out of these. what to do ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

塔塔猫 2024-10-25 07:11:05

您可以使用CustomValidator来验证客户端或服务器端代码的输入。

aspx 标记

<asp:CheckBox ID="CheckBox1" runat="server" />
<asp:CheckBox ID="CheckBox2" runat="server" />
<asp:CheckBox ID="CheckBox3" runat="server" />
<asp:CheckBox ID="CheckBox4" runat="server" />

<asp:CustomValidator 
      ID="CustomValidator1" 
      runat="server" 
      ErrorMessage="put here error description"
      ClientValidationFunction="clientfunc" 
      OnServerValidate="CheckValidate">
</asp:CustomValidator>
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />

.cs(代码隐藏)

protected void CheckValidate(object source, ServerValidateEventArgs args)
    {
        args.IsValid=false;
        if (CheckBox1.Checked)
            args.IsValid = true;
        if (CheckBox2.Checked)
            args.IsValid = true;
        if (CheckBox3.Checked)
            args.IsValid = true;
        if (CheckBox4.Checked)
            args.IsValid = true;

    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        if (IsValid)
        {
            //valid
        }
        else
        {
            //Invalid
        }
    }

JavaScript 代码

 <script type="text/javascript">
        function clientfunc(sender, args) {
            args.IsValid = false;
            if (document.getElementById("CheckBox1").checked)
                args.IsValid = true;
            if (document.getElementById("CheckBox2").checked)
                args.IsValid = true;
            if (document.getElementById("CheckBox3").checked)
                args.IsValid = true;
            if (document.getElementById("CheckBox4").checked)
                args.IsValid = true;
        }
 </script>

You can use CustomValidator to validate input at client-side or server-side code.

aspx markup

<asp:CheckBox ID="CheckBox1" runat="server" />
<asp:CheckBox ID="CheckBox2" runat="server" />
<asp:CheckBox ID="CheckBox3" runat="server" />
<asp:CheckBox ID="CheckBox4" runat="server" />

<asp:CustomValidator 
      ID="CustomValidator1" 
      runat="server" 
      ErrorMessage="put here error description"
      ClientValidationFunction="clientfunc" 
      OnServerValidate="CheckValidate">
</asp:CustomValidator>
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />

.cs (code-behind)

protected void CheckValidate(object source, ServerValidateEventArgs args)
    {
        args.IsValid=false;
        if (CheckBox1.Checked)
            args.IsValid = true;
        if (CheckBox2.Checked)
            args.IsValid = true;
        if (CheckBox3.Checked)
            args.IsValid = true;
        if (CheckBox4.Checked)
            args.IsValid = true;

    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        if (IsValid)
        {
            //valid
        }
        else
        {
            //Invalid
        }
    }

JavaScript code

 <script type="text/javascript">
        function clientfunc(sender, args) {
            args.IsValid = false;
            if (document.getElementById("CheckBox1").checked)
                args.IsValid = true;
            if (document.getElementById("CheckBox2").checked)
                args.IsValid = true;
            if (document.getElementById("CheckBox3").checked)
                args.IsValid = true;
            if (document.getElementById("CheckBox4").checked)
                args.IsValid = true;
        }
 </script>
猫卆 2024-10-25 07:11:05

如果您使用自定义验证器,则可以通过 or 语句来实现:

if (chkBox1.Checked || chkBox2.Checked || chkBox3.Checked)
{
   // At least 1 checkbox was checked.
}

这适用于所有语言(尽管 || 不是通用的,所有语言都有它的表示形式)。在 JavaScript 中,您需要 .Value 而不是 .Checked。

If you are using custom validator such thing could be achieved with an or-statement:

if (chkBox1.Checked || chkBox2.Checked || chkBox3.Checked)
{
   // At least 1 checkbox was checked.
}

This applies to all languages (although || is not universal all languages has a representation of it). In JavaScript you'd want .Value instead of .Checked.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文