html如何实现下拉框实现省市级三级联动
时间: 2024-04-04 15:30:41 浏览: 173
纯JS省市区三级联动,全国省市区用js实现三级下拉,直接引用js即可
5星 · 资源好评率100%
要实现省市级三级联动下拉框,需要以下步骤:
1. 在HTML中创建3个下拉框,分别用于显示省、市、区县。
2. 创建一个JavaScript数组,用于存储省市区县数据。
3. 给省下拉框绑定change事件,当省下拉框的值发生改变时,根据选中的省份动态生成对应的市下拉框选项。
4. 给市下拉框绑定change事件,当市下拉框的值发生改变时,根据选中的市动态生成对应的区县下拉框选项。
5. 在JavaScript中编写函数,根据选中的省市区县,获取对应的数据并填充到对应的下拉框中。
以下是示例代码:
HTML部分:
```
<select id="province"></select>
<select id="city"></select>
<select id="district"></select>
```
JavaScript部分:
```
// 省市区县数据
var data = {
"北京市": {
"市辖区": ["东城区", "西城区", "崇文区", "宣武区", "朝阳区", "海淀区", "丰台区", "石景山区", "房山区", "通州区", "顺义区", "昌平区", "大兴区", "怀柔区", "平谷区"],
"县": ["密云县", "延庆县"]
},
"浙江省": {
"杭州市": ["上城区", "下城区", "江干区", "拱墅区", "西湖区", "滨江区", "萧山区", "余杭区", "桐庐县", "淳安县", "建德市", "富阳市", "临安市"],
"宁波市": ["海曙区", "江东区", "江北区", "北仑区", "镇海区", "鄞州区", "象山县", "宁海县", "余姚市", "慈溪市", "奉化市"],
"温州市": ["鹿城区", "龙湾区", "瓯海区", "洞头县", "永嘉县", "平阳县", "苍南县", "文成县", "泰顺县", "瑞安市", "乐清市"],
"嘉兴市": ["南湖区", "秀洲区", "嘉善县", "海盐县", "海宁市", "平湖市", "桐乡市"],
"湖州市": ["吴兴区", "南浔区", "德清县", "长兴县", "安吉县"],
"绍兴市": ["越城区", "绍兴县", "新昌县", "诸暨市", "上虞市", "嵊州市"],
"金华市": ["婺城区", "金东区", "武义县", "浦江县", "磐安县", "兰溪市", "义乌市", "东阳市", "永康市"],
"衢州市": ["柯城区", "衢江区", "常山县", "开化县", "龙游县", "江山市"],
"舟山市": ["定海区", "普陀区", "岱山县", "嵊泗县"],
"台州市": ["椒江区", "黄岩区", "路桥区", "玉环县", "三门县", "天台县", "仙居县", "温岭市", "临海市"],
"丽水市": ["莲都区", "青田县", "缙云县", "遂昌县", "松阳县", "云和县", "庆元县", "景宁畲族自治县", "龙泉市"]
}
};
// 初始化省下拉框选项
function initProvince() {
var provinceSelect = document.getElementById("province");
for (var province in data) {
var option = document.createElement("option");
option.value = province;
option.text = province;
provinceSelect.add(option);
}
// 触发省下拉框change事件
provinceSelect.onchange();
}
// 根据省份生成市下拉框选项
function generateCity() {
var provinceSelect = document.getElementById("province");
var citySelect = document.getElementById("city");
var province = provinceSelect.value;
citySelect.innerHTML = ""; // 清空市下拉框选项
if (province in data) {
var cities = data[province];
for (var city in cities) {
var option = document.createElement("option");
option.value = city;
option.text = city;
citySelect.add(option);
}
}
// 触发市下拉框change事件
citySelect.onchange();
}
// 根据市生成区县下拉框选项
function generateDistrict() {
var provinceSelect = document.getElementById("province");
var citySelect = document.getElementById("city");
var districtSelect = document.getElementById("district");
var province = provinceSelect.value;
var city = citySelect.value;
districtSelect.innerHTML = ""; // 清空区县下拉框选项
if (province in data && city in data[province]) {
var districts = data[province][city];
for (var i = 0; i < districts.length; i++) {
var option = document.createElement("option");
option.value = districts[i];
option.text = districts[i];
districtSelect.add(option);
}
}
}
// 绑定省下拉框change事件
document.getElementById("province").onchange = function() {
generateCity();
};
// 绑定市下拉框change事件
document.getElementById("city").onchange = function() {
generateDistrict();
};
// 初始化省下拉框选项
initProvince();
```
这个例子中,我们使用JavaScript数组存储省市区县数据,并使用三个下拉框来展示省市区县信息。当省下拉框的值发生改变时,会自动根据选中的省份生成对应的市下拉框选项;当市下拉框的值发生改变时,会自动根据选中的市生成对应的区县下拉框选项。
阅读全文