vue 三级联动下拉框
时间: 2023-07-06 17:44:06 浏览: 125
三级联动 下拉框
好的,这是一个比较常见的前端问题,我可以为您提供一个简单的实现思路:
1. 定义三个下拉框,并为它们设置相应的选项数据源。
2. 监听第一级下拉框的变化事件,根据选中的值动态生成第二级下拉框的选项。
3. 监听第二级下拉框的变化事件,根据选中的值动态生成第三级下拉框的选项。
具体实现代码可以参考以下示例:
HTML 代码:
```html
<select id="province">
<option value="">请选择省份</option>
<option value="1">北京市</option>
<option value="2">上海市</option>
<option value="3">广东省</option>
<!-- 更多省份选项... -->
</select>
<select id="city">
<option value="">请选择城市</option>
</select>
<select id="district">
<option value="">请选择区县</option>
</select>
```
JavaScript 代码:
```javascript
// 定义省份数据源
var provinceData = [
{ id: 1, name: '北京市' },
{ id: 2, name: '上海市' },
{ id: 3, name: '广东省' },
// 更多省份数据...
];
// 定义城市数据源
var cityData = {
1: [
{ id: 11, name: '北京市' },
// 更多北京市的城市数据...
],
2: [
{ id: 21, name: '上海市' },
// 更多上海市的城市数据...
],
3: [
{ id: 31, name: '广州市' },
{ id: 32, name: '深圳市' },
// 更多广东省的城市数据...
],
// 更多省份的城市数据...
};
// 定义区县数据源
var districtData = {
11: [
{ id: 111, name: '东城区' },
{ id: 112, name: '西城区' },
// 更多北京市的区县数据...
],
21: [
{ id: 211, name: '黄浦区' },
{ id: 212, name: '徐汇区' },
// 更多上海市的区县数据...
],
31: [
{ id: 311, name: '天河区' },
{ id: 312, name: '越秀区' },
// 更多广州市的区县数据...
],
// 更多城市的区县数据...
};
// 监听省份下拉框的变化事件
document.getElementById('province').addEventListener('change', function() {
var citySelect = document.getElementById('city');
var districtSelect = document.getElementById('district');
var provinceId = this.value;
citySelect.innerHTML = '<option value="">请选择城市</option>';
districtSelect.innerHTML = '<option value="">请选择区县</option>';
if (provinceId) {
// 根据省份选项生成城市选项
var cities = cityData[provinceId];
if (cities) {
for (var i = 0; i < cities.length; i++) {
var option = document.createElement('option');
option.value = cities[i].id;
option.text = cities[i].name;
citySelect.appendChild(option);
}
}
}
});
// 监听城市下拉框的变化事件
document.getElementById('city').addEventListener('change', function() {
var districtSelect = document.getElementById('district');
var cityId = this.value;
districtSelect.innerHTML = '<option value="">请选择区县</option>';
if (cityId) {
// 根据城市选项生成区县选项
var districts = districtData[cityId];
if (districts) {
for (var i = 0; i < districts.length; i++) {
var option = document.createElement('option');
option.value = districts[i].id;
option.text = districts[i].name;
districtSelect.appendChild(option);
}
}
}
});
```
以上代码实现了一个简单的三级联动下拉框,您可以根据实际需求进行适当的修改和扩展。
阅读全文