Vue实现省市区三级联动,下拉框,简单易懂
Vue 实现 简单 联动 易懂 下拉框 三级 省市区
2023-09-11 14:21:46 时间
效果图:
代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="GBK">
<title></title>
<style>
</style>
</head>
<body>
<div id="app" >
<select v-model='prov' @change="changeCity();changeCity1()">
<option v-for="(item,i) in items">{{item.name}}</option>
</select>
-- <select v-model='city' @change="changeCity1">
<option v-for="(item,i) in cityArr">{{item.name}}</option>
</select>
-- <select v-model='city1'>
<option v-for="(item,i) in cityArr1">{{item.name}}</option>
</select>
<p>您选中的是:{{prov}}-{{city}}-{{city1}}</p>
</div>
</body>
<script src="vue.js"></script>
<script>
var id=1;
new Vue({
el:'#app',
data:{
prov:'北京',
city:'',
city1:'',
items:[
{name:'北京',
sub:[
{name:'北京市',sub:[{name:'北京市11'},{name:'北京市12'},{name:'北京市13'}]},
{name:'北京市2',sub:[{name:'北京市21'},{name:'北京市22'},{name:'北京市23'}]},
]
},
{name:'江西',
sub:[
{name:'南昌市',sub:[{name:'高新区'},{name:'西湖区'},{name:'瑶湖区'}]},
{name:'赣州市',sub:[{name:'赣州市1'},{name:'赣州市2'},{name:'赣州市3'}]},
{name:'抚州市',sub:[{name:'抚州市1'},{name:'抚州市2'},{name:'抚州市3'}]}
]
}
],
cityArr:[],
cityArr1:[]
},
mounted:function(){//执行默认选择
this.changeCity();
this.changeCity1();
},
methods:{
changeCity:function(){//省切换
var me=this;
var item ;
me.items.forEach(function(ele){
if(ele.name===me.prov){//判断与prov是否相等,相等的表示被切换选中的省份
item = ele;
}
})
if(item){
this.cityArr=item.sub;//将选中的item的sub设置给cityArr 用于显示市
this.city=item.sub[0].name;//默认选择第一个市
this.cityArr1=[];
this.city1='';
}
},
changeCity1:function(){//市切换
var me=this;
var item ;
me.cityArr.forEach(function(ele){
if(ele.name===me.city){//判断与city是否相等,相等的表示被切换选中的市
item = ele;
}
})
if(item){
this.cityArr1=item.sub;//将选中的item的sub设置给cityArr1 用于显示区
this.city1=item.sub[0].name;//默认选择第一个区
}
}
}
})
</script>
</html>
相关文章
- [转] Vue原理解析——自己写个Vue
- [转] 从零构建 vue2 + vue-router + vuex 开发环境到入门,实现基本的登录退出功能
- 基于 Vue.js 之 iView UI 框架非工程化实践记要 使用 Newtonsoft.Json 操作 JSON 字符串 基于.net core实现项目自动编译、并生成nuget包 webpack + vue 在dev和production模式下的小小区别 这样入门asp.net core 之 静态文件 这样入门asp.net core,如何
- 【Vue】通过Vue实现轮播图的两种示例(简单清晰+图文+完整源代码)
- 【Vue】Vue中实现单击click事件获取html元素和css样式的解决方法(持续更新中...)
- 从实现吸顶效果看vue生命周期
- Vue - 实现图片裁剪功能,并上传到服务器(内置第三方最优秀的裁剪图片组件,上传到服务器功能)干净整洁无 BUG 的示例源码与超详细的注释,兼容任意浏览器
- uni-app - H5 页面路由不存在时,跳转到自己定制的 404.vue 页面(当路由不存在时自动重定向到自定义的 404 组件)超详细简约高效的解决方案
- vue和ainapp动态获取数据改变背景颜色
- Vue 组件之间传值
- vue.js-详解三大流行框架VUE_快速进阶前端大咖-Vue基础
- Vue 项目本地 Mock 数据
- 使用node+vue实现简单的WebSocket聊天功能
- vue如何实现实时监听页面宽度高度变化
- vue实战入门后台篇四:springboot+mybatis实现网站后台-增删改查功能实现
- vue实战入门基础篇五:从零开始仿门户网站实例-关于我们实现
- vue实现点击修改文字
- vue-router登录校验后跳转到之前指定页面如何实现
- Vue 之 mockjs 结合 axios 在 vue 中的随机数据生成的简单使用
- Vue 之 Vuex 使用 vuex 实现一个todo 列表的简单实例
- VUE 遍历对象
- vue响应式依赖的两种技术之-发布订阅模式的实现