gpt4 book ai didi

javascript - 2 个相互连接的下拉列表(第二个取决于第一个)

转载 作者:行者123 更新时间:2023-12-03 09:39:43 24 4
gpt4 key购买 nike

我正在尝试解决以下要求的练习:“也使用 javascript 创建一个 HTML 页面,其中包含一个下拉列表,您可以在其中选择州,另一个下拉列表动态填充属于该国家/地区的城市。我已经看到其他类似的问题并应用了建议,但它似乎仍然不起作用(第二个下拉列表保持为空)。

 <html>
<head>

<script type = "text/javascript">

function update()
{
var albania = ["Tirana","Durres","Vlore","Shkoder"];
var kosovo = ["Prishtina","Mitrovica","Peje","Gjakove"];
var germany = ["Berlin","Frankfurt","Hannover","Bonn"];

var countries = document.getElementById("1");
var cities = document.getElementById("2");
var selected = countries.options[countries.selectedIndex].value;

if(selected=="1"){
for(var i = 0; i < albania.length; i++) {
var opt1 = document.createElement('option');
opt1.innerHTML = albania[i];
opt1.value = albania[i];
cities.appendChild(opt1);
}
}
else if(selected=="2")
{
for(var j = 0; j < kosovo.length; j++) {
var opt2 = document.createElement('option');
opt2.innerHTML = kosovo[j];
opt2.value = kosovo[j];
cities.appendChild(opt2);
}
}
else if(selected=="3")
{
for(var k = 0; k < germany.length; k++) {
var opt3 = document.createElement('option');
opt3.innerHTML = germany[k];
opt3.value = germany[k];
cities.appendChild(opt3);
}
}
else
var t =0;
}
</script>

</head>

<body>

<p><select id= "1" onchange="update()">
<option selected = "selected" >Select Country</option>
<option value="1">Albania</option>
<option value="2">Kosovo</option>
<option value="3">Germany</option>
</select>
</p>

<p><select id="2">
<option selected = "selected" ></option>


</body>
</html>`"

最佳答案

这里是Working Example根据您的要求。

Javascript:

var albania = ["Tirana","Durres","Vlore","Shkoder"];
var kosovo = ["Prishtina","Mitrovica","Peje","Gjakove"];
var germany = ["Berlin","Frankfurt","Hannover","Bonn"];


document.getElementById("1").addEventListener("change", function(e){
var select2 = document.getElementById("2");
select2.innerHTML = "";
var aItems = [];
if(this.value == "2"){
aItems = kosovo;
} else if (this.value == "3") {
aItems = germany;
} else if(this.value == "1") {
aItems = albania;
}
for(var i=0,len=aItems.length; i<len;i++) {
var option = document.createElement("option");
option.value= (i+1);
var textNode = document.createTextNode(aItems[i]);
option.appendChild(textNode);
select2.appendChild(option);
}

}, false);

HTML:

<p><select  id= "1">
<option selected = "selected" >Select Country</option>
<option value="1">Albania</option>
<option value="2">Kosovo</option>
<option value="3">Germany</option>
</select>
</p>

<p><select id="2">
<option selected = "selected" ></option></select></p>

关于javascript - 2 个相互连接的下拉列表(第二个取决于第一个),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31224830/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com