【发布时间】:2019-07-24 15:30:03
【问题描述】:
我正在尝试创建一个包含多个组合框选择的表单。我希望第一个组合框的选择影响以下框中的选择。我只能让一对工作。我复制了该函数并更改了 ID,以便它反映在传递的参数中,但它仍然只适用于一对。下面的代码是我通过教程开始的,我想添加额外的框,例如雪佛兰有白色、黑红色,道奇有蓝色、绿色和黑色。我如何根据第一个盒子制作额外的盒子?
我尝试复制函数和 html 行并将 id 和名称更改为 slct1、slct2、slct3。当我添加填充函数时,我将 s1,s3 作为新参数传递。我还尝试将它全部包含在一个函数中,并添加了要传递的其他参数。
<!DOCTYPE html>
<html>
<head>
<script>
function populate(s1,s2){
var s1 = document.getElementById(s1);
var s2 = document.getElementById(s2);
s2.innerHTML = "";
if(s1.value == "Chevy"){
var optionArray = ["|","camaro|Camaro","corvette|Corvette","impala|Impala"];
} else if(s1.value == "Dodge"){
var optionArray = ["|","avenger|Avenger","challenger|Challenger","charger|Charger"];
} else if(s1.value == "Ford"){
var optionArray = ["|","mustang|Mustang","shelby|Shelby"];
}
for(var option in optionArray){
var pair = optionArray[option].split("|");
var newOption = document.createElement("option");
newOption.value = pair[0];
newOption.innerHTML = pair[1];
s2.options.add(newOption);
}
}
</script>
</head>
<body>
<h2>Choose Your Car</h2>
<hr />
Choose Car Make:
<select id="slct1" name="slct1" onchange="populate(this.id,'slct2')">
<option value=""></option>
<option value="Chevy">Chevy</option>
<option value="Dodge">Dodge</option>
<option value="Ford">Ford</option>
</select>
<hr />
Choose Car Model:
<select id="slct2" name="slct2"></select>
<hr />
</body>
</html>
我的预期结果是用户选择一辆车(雪佛兰、道奇、福特等),然后其他框会根据该选择、型号和颜色填充选项。我只能让主框和第一个从属框工作。
【问题讨论】:
标签: javascript html