vue.js 省份城市联动选择实现示例(通过vue数组过滤)
要求选择省后自动显示相应城市,加载页面时将所有城市一次性加载。实现思路通过 watch 监视所选省,省份改变后将所有城市数组根据省id进行过滤。示例代码<template><div><!-- 省份选择 --><select v-model="selectedProv">
·
要求
选择省后自动显示相应城市,加载页面时将所有城市一次性加载。
实现思路
通过 watch 监视所选省,省份改变后将所有城市数组根据省id进行过滤。
示例代码
<template>
<div>
<!-- 省份选择 -->
<select v-model="selectedProv">
<option v-for="item in listProv" v-bind:value="item.id" :key="item.id">{{item.name}}</option>
</select>
<!-- 城市选择 -->
<select v-model="selectedCity">
<option v-for="item in listCity" v-bind:value="item.id" :key="item.id">{{item.name}}</option>
</select>
</div>
</template>
<script>
export default {
data: function () {
return {
selectedProv: null,
selectedCity: null,
listProv: [],
listCity: [],
cityAll: [
{ "pid": "1", "id": "1", "name": "淄博" },
{ "pid": "1", "id": "2", "name": "青岛" },
{ "pid": "2", "id": "3", "name": "东1城" },
{ "pid": "2", "id": "4", "name": "天2上" }],
}
},
created: function () {
this.getProvList();
},
watch: {
selectedProv: 'getCityList'
},
methods: {
//获取省份列表
getProvList: function () {
this.listProv = [{ "id": "1", "name": "山东" }, { "id": "2", "name": "北京" }]
},
// 获取当前选择省份下的城市列表
getCityList: function () {
let vm = this;
this.listCity = this.cityAll.filter(function (city) {
return city.pid == vm.selectedProv
})
}
}
}
</script>
更多推荐
已为社区贡献1条内容
所有评论(0)