如何获取通过 jQuery 选择 CheckBoxList 中的哪个复选框?

Posted

技术标签:

【中文标题】如何获取通过 jQuery 选择 CheckBoxList 中的哪个复选框?【英文标题】:How can I get which any checkbox from CheckBoxList is selected via jQuery? 【发布时间】:2012-01-30 09:08:12 【问题描述】:

如何通过 jQuery 选择 CheckBoxList 中的任何复选框?

标记:

    <div>
        <asp:CheckBoxList ID="cblProduct" runat="server" CssClass="myProductCheckBoxList" TabIndex="14">
        </asp:CheckBoxList>
    </div>

我想找到任何具有 Cssclass-myProductCheckBoxList 的选中复选框。 (用于验证 - 已检查 -> 至少一种产品)

【问题讨论】:

【参考方案1】:

jQuery('.myProductCheckBoxList:checked').each(function()

alert(jQuery(this).attr('checked'));

);

我不太了解asp,但我想checked 过滤器将帮助您找到所有已选中的复选框。

实际上,选择器给出了一个包含所有选定元素的数组。您可以像在代码中一样对其进行迭代以读取属性。

【讨论】:

是的,这给出了一些对象。我如何确保选择了某些东西或没有选择任何东西。 现在你可以迭代这个对象来获取所有被选中的元素修改代码进行迭代。【参考方案2】:

如果你想检查至少1个复选框被选中,那么你可以尝试以下,

$(':checkbox.myProductCheckBoxList').is (':checked'); //returns true if at least 1 option is selected

您可以在此处使用jsFiddle Link 尝试更多

【讨论】:

这总是假的 您是否尝试选中 1 个复选框并进行验证?我刚刚测试了它,它工作正常。【参考方案3】:
jQuery('.myProductCheckBoxList').each(function() 
  if (jQuery(this).is(":checked")) 
    alert(jQuery(this).attr("value"));
  
);

翻译:对于每个“myProductCheckBoxList”类的复选框,检查当前项是否“选中”,如果是,则提醒当前复选框项。

var checked_product = false;
jQuery('.myProductCheckBoxList').each(function() 
  if (jQuery(this).is(":checked")) 
    checked_product = true;
  
);
if (checked_product) 
  alert("one product is checked");

这会检查一个或多个项目是否被选中。

【讨论】:

【参考方案4】:
function SetProductCheckAll() 

    $('.myProductCheckBoxList :checkbox').click(function () 
        var toggle = this.checked;
        var value = this.value;
        var needCheckAll = true;
        if (value == "-1") 
            $('.myProductCheckBoxList :checkbox').attr("checked", toggle);
        
        else 
            if (toggle == false) 
                $('.myProductCheckBoxList :checkbox').eq(0).attr("checked", false);
            
            else 
                for (var count = 1; count <= $('.myProductCheckBoxList :checkbox').length; count = count + 1) 
                    if ($('.myProductCheckBoxList :checkbox').eq(count).attr("checked") == false) 
                        needCheckAll = false;
                    
                
                $('.myProductCheckBoxList :checkbox').eq(0).attr("checked", needCheckAll);
            
        
    );

【讨论】:

以上是关于如何获取通过 jQuery 选择 CheckBoxList 中的哪个复选框?的主要内容,如果未能解决你的问题,请参考以下文章

jquery 如何获取 checkbox的 选中个数

jQuery选择器如何选择页面中的所有单选按钮和多选按钮?

jQuery获取checkbox选中的值

jQuery1.9为动态添加元素绑定事件以及获取和操作checkbox的选择属性

jQuery获取和设置checkbox的checked属性小结

jQuery1.9为动态添加元素绑定事件以及获取和操作checkbox的选择属性11