在前端开发中,复选框(checkbox)是一种常见的用户界面元素,用于允许用户选择一个或多个选项。父复选框和子复选框通常用于表示层次结构的数据,其中父复选框代表一个类别,子复选框代表该类别下的具体项。
这种机制常见于多级分类的选择场景,例如:
以下是一个使用JavaScript实现双向关联的示例代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Checkbox Example</title>
<script>
function updateParentCheckbox() {
const parentCheckbox = document.getElementById('parentCheckbox');
const childCheckboxes = document.querySelectorAll('.childCheckbox');
let allChecked = true;
childCheckboxes.forEach(checkbox => {
if (!checkbox.checked) {
allChecked = false;
}
});
parentCheckbox.checked = allChecked;
}
function updateChildCheckboxes() {
const parentCheckbox = document.getElementById('parentCheckbox');
const childCheckboxes = document.querySelectorAll('.childCheckbox');
if (parentCheckbox.checked) {
childCheckboxes.forEach(checkbox => {
checkbox.checked = true;
});
}
}
</script>
</head>
<body>
<label>
<input type="checkbox" id="parentCheckbox" onclick="updateChildCheckboxes()">
Parent Checkbox
</label>
<br>
<label>
<input type="checkbox" class="childCheckbox" onclick="updateParentCheckbox()">
Child Checkbox 1
</label>
<br>
<label>
<input type="checkbox" class="childCheckbox" onclick="updateParentCheckbox()">
Child Checkbox 2
</label>
<br>
<label>
<input type="checkbox" class="childCheckbox" onclick="updateParentCheckbox()">
Child Checkbox 3
</label>
</body>
</html>
updateParentCheckbox
函数,确保所有子复选框都被检查,并且父复选框的状态被正确设置。updateChildCheckboxes
函数未正确设置子复选框的状态。updateChildCheckboxes
函数,确保所有子复选框的状态与父复选框一致。通过以上方法,可以确保在所有子类别复选框选中时,父复选框自动选中,并且在父复选框选中时,所有子复选框也自动选中。
领取专属 10元无门槛券
手把手带您无忧上云