如何检查至少一个复选框

时间:2019-07-17 07:24:03

标签: javascript php jquery html

我正在使用PHP和HTML制作调查表。我已经为每个问题制作了一个带有复选框的页面。现在,我要检查每个问题是否至少选中了一个复选框(可以是多个复选框)。

我尝试为每个复选框添加“必需”属性,但是随后要求用户在提交前选中每个问题的所有复选框。我该怎么办?以下是我的代码:

<?php 
$number = 0;
foreach($questions as $question){
   $number = $number + 1;         
   foreach($choices as $choice){
?>

  <input type="checkbox" name="<?php echo 'q'.$number.'checkbox_ans[]'; ?>" value="<?php echo $choice->id; required ?>"><?php echo $choice->getTitle(); ?>

<?php    
    }
}
?>

提交之前,它应该能够检测每个问题是否至少选中了一个复选框。

2 个答案:

答案 0 :(得分:0)

使用.each().find().length

首先,在所有包含复选框的问题中放一个通用的类,然后可以循环提问并为每个复选框选择复选框:

$('.question-container').each(function(index, element){
   // Then inside each container we search for the checkboxes
   var checked = $(element).find('input[type=checkbox]:checked');
   // Now we have the inputs that are checked, and we check how many
   if(checked.length){
     // Yes at least one checkbox is checked
   } else {
     // No, there are no checkbox checked for this question
   }
})

Check if checkbox is checked with jQuery

答案 1 :(得分:-1)

尝试此希望对您有所帮助。使用is(':checked')查找是否已选中复选框

$('.check').click(function(e){

var status=0

$('.item_check').each(function(e){
     
          if($(this).is(':checked'))
          status=1
})

if(!status)
console.log('no items checked')

})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="checkbox" class="item_check">1
<input type="checkbox" class="item_check">2
<input type="checkbox" class="item_check">3
<input type="checkbox" class="item_check">4
<button class="check">Check</button>