1. 程式人生 > 程式設計 >Vue實現省市區三級聯動

Vue實現省市區三級聯動

本文例項為大家分享了Vue實現省市區三級聯動的具體程式碼,供大家參考,具體內容如下

效果圖:

Vue實現省市區三級聯動

程式碼:

<!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>

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。