检查是否使用jquery中的自定义属性检查了多个复选框

时间:2013-11-09 15:08:08

标签: javascript jquery checkbox

我有多组复选框,如下所示:

<input type="checkbox" class="correction_check" product_id="3" defect_col="Qty">
<input type="checkbox" class="correction_check" product_id="3" defect_col="Exp">
<input type="checkbox" class="correction_check" product_id="3" defect_col="Bat">

<input type="checkbox" class="correction_check" product_id="4" defect_col="Qty">
<input type="checkbox" class="correction_check" product_id="4" defect_col="Bat">

一组复选框由product_id区分。

我可以这样做吗?

$('.correction_check').click(function(){
    //check if all other check boxes having same product_id as $(this) are checked and do some action
});

2 个答案:

答案 0 :(得分:1)

您可以测试是否选中了具有相同product_id的所有其他复选框:

$('.correction_check').click(function(){
    var otherAreChecked = $('.correction_check[product_id='+$(this).attr('product_id')+']')
       .not(this).not(':checked').length===0;
    // do action
});

想法是计算未检查的那个:这个计数应该是0。

Demonstration

请注意,如果您想知道是否选中了具有相同产品ID的所有复选框(而不仅仅是“其他”复选框),则只需从代码中删除.not(this)

答案 1 :(得分:0)

试试这个:

$(".correction_check").change(function(){
    var id = $(this).attr("product_id");
    $(".correction_check[product_id='"+id+"']:checked").each(function(){
        //do action
    });
});