【问题标题】:How to restrict user to select not more than 10 asp.net checkboxes?如何限制用户选择不超过 10 个 asp.net 复选框?
【发布时间】:2011-01-26 18:45:35
【问题描述】:

如何限制用户在按钮单击事件中选择不超过 10 个 asp.net 复选框,如果用户选择超过 10 个复选框,则会弹出警告框,您不能选择超过 10 个复选框?

【问题讨论】:

    标签: asp.net vb.net visual-studio-2008


    【解决方案1】:

    如果页面上的复选框不多,则为该复选框创建一个onlcick javascript函数,并循环遍历所有复选框,看看是否选中了10个以上。

    如果您的页面上有很多复选框,则在单击复选框时增加一个变量,并在未选中时减少它。您将始终拥有可以检查以显示警报的计数。

    【讨论】:

    • 你能给我提供 thsi 的例子吗?
    【解决方案2】:

    您可以使用CustomValidator 并实现其ServerValidate 事件(也可以选择通过其ClientValidationFunction 在客户端上执行相同的操作)。

    可能是这样的(如果您使用的是 jQuery):

    ASPX

    <asp:CheckBoxList ID="Checkboxes" runat="server" />
    <asp:CustomValidator ID="CheckboxValidator" runat="server" Display="None" ClientValidationFunction="CheckboxValidator_ClientValidate" OnServerValidate="CheckboxValidator_ServerValidate" ErrorMessage="Too many selections" />
    <asp:ValidationSummary runat="server" />
    
    <script type="text/javascript">
        function CheckboxValidator_ClientValidate(sender, args) {
            args.IsValid = jQuery('#<%=Checkboxes.ClientID%> input:checked').length < <%= MaximumSelections %>;
        }
    </script>
    

    代码隐藏

    protected const int MaximumSelections = 10;
    
    protected void CheckboxValidator_ServerValidate(object sender, ServerValidateEventArgs args)
    {
        args.IsValid = Checkboxes.Items.Cast<ListItem>().Where(i => i.Selected).Count() < MaximumSelections;
    }
    

    【讨论】:

    • 怎么做..m 基础的学习者可以举个简单的例子
    猜你喜欢
    • 1970-01-01
    • 2017-07-20
    • 2021-09-04
    • 1970-01-01
    • 2021-04-30
    • 2022-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多