用vue和js写一个地址选择下拉
时间: 2024-04-27 09:24:46 浏览: 157
好的,下面是一个简单的示例,使用 Vue 和 JavaScript 实现一个地址选择下拉:
HTML 代码:
```html
<div id="app">
<select v-model="selectedProvince" @change="onProvinceChanged">
<option value="">请选择省份</option>
<option v-for="province in provinces" :value="province">{{ province }}</option>
</select>
<select v-model="selectedCity" @change="onCityChanged">
<option value="">请选择城市</option>
<option v-for="city in cities" :value="city">{{ city }}</option>
</select>
<select v-model="selectedDistrict">
<option value="">请选择区县</option>
<option v-for="district in districts" :value="district">{{ district }}</option>
</select>
</div>
```
JavaScript 代码:
```javascript
new Vue({
el: "#app",
data: {
provinces: ["北京", "上海", "广东", "江苏"],
cities: [],
districts: [],
selectedProvince: "",
selectedCity: "",
selectedDistrict: ""
},
methods: {
onProvinceChanged() {
if (this.selectedProvince === "") {
this.cities = [];
this.districts = [];
return;
}
// 根据省份获取城市列表
this.cities = this.getCityListByProvince(this.selectedProvince);
// 清空区县列表
this.districts = [];
},
onCityChanged() {
if (this.selectedCity === "") {
this.districts = [];
return;
}
// 根据城市获取区县列表
this.districts = this.getDistrictListByCity(this.selectedCity);
},
getCityListByProvince(province) {
// TODO: 根据省份获取城市列表的代码
// 这里只是一个示例,返回了固定的城市列表
switch (province) {
case "北京":
return ["北京市"];
case "上海":
return ["上海市"];
case "广东":
return ["广州市", "深圳市", "东莞市"];
case "江苏":
return ["南京市", "苏州市", "无锡市"];
default:
return [];
}
},
getDistrictListByCity(city) {
// TODO: 根据城市获取区县列表的代码
// 这里只是一个示例,返回了固定的区县列表
switch (city) {
case "北京市":
return ["东城区", "西城区", "朝阳区", "海淀区", "丰台区"];
case "上海市":
return ["黄浦区", "徐汇区", "长宁区", "静安区", "普陀区"];
case "广州市":
return ["越秀区", "天河区", "海珠区", "白云区", "荔湾区"];
case "深圳市":
return ["福田区", "罗湖区", "南山区", "宝安区", "龙岗区"];
// 其他城市的区县列表在这里添加
default:
return [];
}
}
}
});
```
这个示例中,有三个下拉框,分别用于选择省份、城市和区县。当选择省份时,会根据省份获取对应的城市列表,并更新城市下拉框;当选择城市时,会根据城市获取对应的区县列表,并更新区县下拉框。这个示例中,省份、城市和区县的列表都是手动设置的,实际应用中需要根据实际情况获取相应的数据。
阅读全文