【问题标题】:check box validation for atleast one check box should cheked in asp.net至少一个复选框的复选框验证应在 asp.net 中选中
【发布时间】:2011-07-01 18:58:54
【问题描述】:

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

【问题讨论】:

    标签: javascript asp.net checkbox customvalidator


    【解决方案1】:

    您可以使用 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>
    

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        【解决方案3】:
        猜你喜欢
        • 2017-07-27
        • 1970-01-01
        • 2011-03-13
        • 2015-11-06
        • 1970-01-01
        • 1970-01-01
        • 2017-09-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多