У меня есть несколько групп таких флажков:
<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
});
Вы можете проверить, проверяются ли все остальные флажки с одним и тем же 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.
Обратите внимание, что если вы хотите узнать, отмечены ли все флажки с одинаковым идентификатором продукта (а не только "другие"), вам просто нужно удалить .not(this)
из моего кода
Попробуй это:
$(".correction_check").change(function(){
var id = $(this).attr("product_id");
$(".correction_check[product_id='"+id+"']:checked").each(function(){
//do action
});
});