Javascript 每个div中必须至少选中一个复选框

Javascript 每个div中必须至少选中一个复选框,javascript,jquery,css,Javascript,Jquery,Css,Html代码 <div class="answer"> <input type="checkbox" /> <input type="checkbox" /> <input type="checkbox" /> <input type="checkbox" /> </div> <div class="answer"> <input type="checkbox" /&

Html代码

<div class="answer">
    <input type="checkbox" />
    <input type="checkbox" />
    <input type="checkbox" />
    <input type="checkbox" />
</div>
<div class="answer">
    <input type="checkbox" />
    <input type="checkbox" />
    <input type="checkbox" />
    <input type="checkbox" />
</div>
<button>check</button>
但是我的代码没有在每个

试试看

if ($('.answer').filter(function(){  return $(this).find(':checked').length === 0 }).length > 0 ) {
 alert('At least 1 checkbox must be checked from this div!');
}
试试看


您可以循环浏览所有
。回答
,并检查其中是否未选中复选框:

$('button').click(function(){
    $('.answer').each(function() {
        if($(this).find(':checkbox:checked').length === 0) {
            alert('At least 1 checkbox must be checked from this div!');
        }
    });
});

您可以循环查看所有
。回答
,并检查其中是否未选中复选框:

$('button').click(function(){
    $('.answer').each(function() {
        if($(this).find(':checkbox:checked').length === 0) {
            alert('At least 1 checkbox must be checked from this div!');
        }
    });
});

试试这个:

$('button').click(function(){
  $('.answer').each(function() {
    if (!$(this).find('input:checked').length ) {alert('At least 1 checkbox must be checked from this div!');
        return false;
}});});

试试这个:

$('button').click(function(){
  $('.answer').each(function() {
    if (!$(this).find('input:checked').length ) {alert('At least 1 checkbox must be checked from this div!');
        return false;
}});});

选择器中的问题是您选择了所有答案
。答案

要选择有问题的块,而不循环所有答案,有一个更复杂的选择器:

$('button').click(function(){
  // check if there is an '.answer' which does NOT have checked checkbox.
  var checkedboxes = $(".answer:not(:has(> input:checkbox:checked))").length;

    if (checkedboxes > 0){
        alert('At least 1 checkbox must be checked from this div!');
    }
});

选择器中的问题是您选择了所有答案
。答案
要选择有问题的块,而不循环所有答案,有一个更复杂的选择器:

$('button').click(function(){
  // check if there is an '.answer' which does NOT have checked checkbox.
  var checkedboxes = $(".answer:not(:has(> input:checkbox:checked))").length;

    if (checkedboxes > 0){
        alert('At least 1 checkbox must be checked from this div!');
    }
});