有几种方法可以实现你要找的东西。一种方法有两个单独的下拉菜单,一个用于状态,另一个用于根据所选状态自动填充的城市。 接下来的事情会是,数据源,你会从哪里得到具有关联的州/城市的列表(哪些城市属于哪个州)。再次有很多选择,在我分享的例子中,我选择了一个JSON
的结构,但你可以选择其他的东西。 我用纯JS代码,但你可以很容易地使用另一个库吸如JQuery
,它会缩短代码行。 JS代码
var States = [{
key: 13,
name: "State1",
cities: ["City1", "City2", "Silver Spring"]
}, {
key: 2,
name: "State2",
cities: ["City5", "City9", "City8","San Diego"]
}];
//populate states
for (var i = 0; i < States.length; i++) {
var opt = States[i];
var el = document.createElement("option");
el.textContent = opt.name;
el.value = opt.key;
StatesList.appendChild(el);
}
//Populate initial cities
populateCities();
//populate cities
function populateCities() {
//clear the cities list
document.getElementById('CitiesList').options.length = 0;
var e = document.getElementById("StatesList");
var selectedState = e.options[e.selectedIndex].value;
var listOfCities;
for (var i = 0; i < States.length; i++) {
if (States[i].key == selectedState) {
listOfCities = States[i].cities;
break;
}
}
//populate Cities DropDown menu
for (var i = 0; i < listOfCities.length; i++) {
var opt = listOfCities[i];
var el = document.createElement("option");
el.textContent = opt;
el.value = opt;
CitiesList.appendChild(el);
}
}
HTML
<div class="DDStyle" id="states" onChange="populateCities()">
States :
<select id="StatesList" class="DDStyle" >
</select>
</div>
<div id="Cities" class="DDStyle">
Cities :
<select id="CitiesList" class="DDStyle">
</select>
</div>
http://codepen.io/anon/pen/wKzqYG
你可以把它隐藏所有的onclick一个JavaScript或jQuery的功能,那么只显示一个与该状态 – Mark