我用yii2,html和php制作了一个网页。现在,我创建了一个调查表。每个问题包含多个复选框。现在,我想在提交之前检查每个问题是否至少选中一个复选框。那我该怎么办呢?
我尝试使用jquery验证插件,我认为我的commit()函数或复选框的ID出了问题。有人可以帮忙吗?
以下是我的代码:
'''
$number = 0;
foreach($questions as $question){
$count = $count + 1;
foreach($choices as $choice){
?>
<input id="testBox" type="checkbox" name="<?php echo 'q'.$count.'checkbox_ans[]'; ?>" value="<?php echo $choice->id; ?>"><?php echo $choice->getTitle(); ?>
<?php
}
}
?>
<?php
$this->registerJs('
var formHasChanged = false;
var submitted = false;
$(document).on("change", "form input", function (e) {
formHasChanged = true;
});
$("form").submit(function(event) {
$("#testForm").validate();
var is_valid = $("#testForm").valid();
var atLeastOneIsChecked = $("#testBox:checkbox:checked").length > 0;
if(is_valid && atLeastOneIsChecked){
submitted = true;
}
else{
event.preventDefault();
alert("please answer all questions.");
}
});
',
View::POS_END);
?>
'''