根据选择的另一个组合框填充两个组合框是一个常见的前端开发需求,可以通过以下步骤来实现:
下面是一个示例代码,演示了如何实现上述功能:
<!DOCTYPE html>
<html>
<head>
<title>动态填充组合框</title>
</head>
<body>
<label for="firstSelect">第一个组合框:</label>
<select id="firstSelect">
<option value="option1">选项1</option>
<option value="option2">选项2</option>
<option value="option3">选项3</option>
</select>
<label for="secondSelect">第二个组合框:</label>
<select id="secondSelect"></select>
<label for="thirdSelect">第三个组合框:</label>
<select id="thirdSelect"></select>
<script>
// 获取组合框元素
const firstSelect = document.getElementById('firstSelect');
const secondSelect = document.getElementById('secondSelect');
const thirdSelect = document.getElementById('thirdSelect');
// 定义数据
const data = {
option1: {
secondOptions: ['选项1-1', '选项1-2', '选项1-3'],
thirdOptions: ['选项1-1-1', '选项1-1-2', '选项1-1-3']
},
option2: {
secondOptions: ['选项2-1', '选项2-2', '选项2-3'],
thirdOptions: ['选项2-1-1', '选项2-1-2', '选项2-1-3']
},
option3: {
secondOptions: ['选项3-1', '选项3-2', '选项3-3'],
thirdOptions: ['选项3-1-1', '选项3-1-2', '选项3-1-3']
}
};
// 监听第一个组合框的选择事件
firstSelect.addEventListener('change', function() {
const selectedValue = firstSelect.value;
const secondOptions = data[selectedValue].secondOptions;
// 清空第二个和第三个组合框的选项
secondSelect.innerHTML = '';
thirdSelect.innerHTML = '';
// 填充第二个组合框的选项
for (let option of secondOptions) {
const optionElement = document.createElement('option');
optionElement.value = option;
optionElement.textContent = option;
secondSelect.appendChild(optionElement);
}
});
// 监听第二个组合框的选择事件
secondSelect.addEventListener('change', function() {
const selectedValue = secondSelect.value;
const thirdOptions = data[firstSelect.value].thirdOptions;
// 清空第三个组合框的选项
thirdSelect.innerHTML = '';
// 填充第三个组合框的选项
for (let option of thirdOptions) {
const optionElement = document.createElement('option');
optionElement.value = option;
optionElement.textContent = option;
thirdSelect.appendChild(optionElement);
}
});
</script>
</body>
</html>
在上述示例代码中,我们通过监听第一个组合框的选择事件,根据选择的值动态生成并填充第二个组合框的选项。同时,我们也监听了第二个组合框的选择事件,根据选择的值动态生成并填充第三个组合框的选项。
这样,当用户选择第一个组合框的选项时,第二个组合框会根据选择的值动态更新选项;当用户选择第二个组合框的选项时,第三个组合框会根据选择的值动态更新选项。
请注意,上述示例代码中的数据是硬编码在脚本中的,实际开发中可能需要从后端获取数据并动态填充。此外,根据具体需求,还可以对代码进行优化和扩展,例如使用异步请求获取数据、添加默认选项等。
领取专属 10元无门槛券
手把手带您无忧上云