省市级联动

 

                    <el-select
                        style="width: 145px"
                        placeholder="请选择省"
                        v-model="checkRegion.provinceId"
                        @change="checkProvince"
                      >
                        <el-option
                          v-for="item in regionList.province"
                          :key="item.id"
                          :label="item.name"
                          :value="item.id"
                        ></el-option>
                      </el-select>
                      <el-select
                        style="width: 145px"
                        placeholder="请选择市"
                        v-model="checkRegion.cityId"
                        @change="checkCity"
                      >
                        <el-option
                          v-for="item in regionList.city"
                          :key="item.id"
                          :label="item.name"
                          :value="item.id"
                        ></el-option>
                      </el-select>
                      <el-select
                        style="width: 145px"
                        placeholder="区域 / 街道"
                        v-model="checkRegion.areaId"
                        @change="checkArea"
                      >
                        <el-option
                          v-for="item in regionList.area"
                          :key="item.id"
                          :label="item.name"
                          :value="item.id"
                        ></el-option>
                      </el-select>
 regionList: {
        //地区列表 数据
        province: null, //省
        city: null, // 市
        area: null, //区
      },
      checkRegion: {}, //选中的 provinceId  cityId  areaId
// 选中省
    checkProvince() {
      // 先判断有没有选过省
      if (
        this.regionList.province == null &&
        this.checkRegion.provinceId == null
      )
        return;
      // 拿到上一级id请求下一级列表
      let pid = this.checkRegion.provinceId;
      // 每次选择省的时候判断  有没有选过市和区  如果选择过要清空重新选
      if (this.checkRegion.areaId) delete this.checkRegion.areaId;
      if (this.checkRegion.cityId) delete this.checkRegion.cityId;

      this.$axios({
        method: "post",
        url: `/api/region/index`,
        data: { pid },
      }).then((res) => {
        this.regionList.city = res.data.data;
        // console.log(this.regionList)
      });
    },
    // 选中市
    checkCity() {
      // 先判断有没有选过市
      if (this.regionList.city == null && this.checkRegion.cityId == null)
        return;
      // 拿到上一级id请求下一级列表
      let pid = this.checkRegion.cityId;
      // 每次选择市的时候判断  有没有选过区  如果选择过要清空重新选
      if (this.checkRegion.areaId) delete this.checkRegion.areaId;

      this.$axios({
        method: "post",
        url: `/api/region/index`,
        data: { pid },
      }).then((res) => {
        this.regionList.area = res.data.data;
        // console.log(this.regionList)
      });
    },
    // 选中区
    checkArea() {
      console.log(this.regionList);
      console.log(this.checkRegion);
    },

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现省市级联动的方法如下: 1. 在 HTML 中定义两个下拉框,一个用于选择份,一个用于选择城市。 2. 在 JavaScript 中定义一个数组,包含所有份及其对应的城市。 3. 给份下拉框绑定 onchange 事件,当份选择发生变化时,根据选择的份动态生成城市下拉框的选项。 4. 根据选择的份,在数组中查找对应的城市列表,动态生成城市下拉框的选项。 以下是示例代码: HTML: ``` <select id="province"> <option value="">请选择份</option> <option value="北京">北京</option> <option value="上海">上海</option> <option value="广东">广东</option> <!-- 其他份选项 --> </select> <select id="city"> <option value="">请选择城市</option> </select> ``` JavaScript: ``` // 定义份和城市的数组 var cityData = { '北京': ['北京市'], '上海': ['上海市'], '广东': ['广州市', '深圳市', '珠海市', '汕头市', '韶关市', '佛山市', '江门市', '湛江市', '茂名市', '肇庆市', '惠州市', '梅州市', '汕尾市', '河源市', '阳江市', '清远市', '东莞市', '中山市', '潮州市', '揭阳市', '云浮市'] // 其他份和城市列表 }; // 给份下拉框绑定 onchange 事件 var provinceSelect = document.getElementById('province'); var citySelect = document.getElementById('city'); provinceSelect.onchange = function() { // 清空城市下拉框的选项 citySelect.innerHTML = '<option value="">请选择城市</option>'; // 获取选择的份 var province = provinceSelect.value; // 根据份查找对应的城市列表 var cities = cityData[province]; // 动态生成城市下拉框的选项 for (var i = 0; i < cities.length; i++) { var option = document.createElement('option'); option.value = cities[i]; option.innerHTML = cities[i]; citySelect.appendChild(option); } }; ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值