基于Vue的三级联动下拉框

展示

width="100%" height="300" src="//jsfiddle.net/3gqrmbum/embedded/" allowfullscreen="allowfullscreen">

html部分

  1. 使用v-model设置和获取select的值
  2. 使用v-for显示option列表
  3. 使用:value设置option属性
  4. 使用{ {}}输出内容
<div id="test">
    单位:
    <select v-model="UnitSelected">
        <option v-for="item in UnitList" :value="item.id">{
   {
   item.name}}</option>
    </select>
    部门:
    <select v-model="DepartmentSelected">
        <option v-for="item in DepartmentList" :value="item.id"&
  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,这是一个比较常见的前端问题,我可以为您提供一个简单的实现思路: 1. 定义三个下拉框,并为它们设置相应的选项数据源。 2. 监听第一级下拉框的变化事件,根据选中的值动态生成第二级下拉框的选项。 3. 监听第二级下拉框的变化事件,根据选中的值动态生成第三级下拉框的选项。 具体实现代码可以参考以下示例: HTML 代码: ```html <select id="province"> <option value="">请选择省份</option> <option value="1">北京市</option> <option value="2">上海市</option> <option value="3">广东省</option> <!-- 更多省份选项... --> </select> <select id="city"> <option value="">请选择城市</option> </select> <select id="district"> <option value="">请选择区县</option> </select> ``` JavaScript 代码: ```javascript // 定义省份数据源 var provinceData = [ { id: 1, name: '北京市' }, { id: 2, name: '上海市' }, { id: 3, name: '广东省' }, // 更多省份数据... ]; // 定义城市数据源 var cityData = { 1: [ { id: 11, name: '北京市' }, // 更多北京市的城市数据... ], 2: [ { id: 21, name: '上海市' }, // 更多上海市的城市数据... ], 3: [ { id: 31, name: '广州市' }, { id: 32, name: '深圳市' }, // 更多广东省的城市数据... ], // 更多省份的城市数据... }; // 定义区县数据源 var districtData = { 11: [ { id: 111, name: '东城区' }, { id: 112, name: '西城区' }, // 更多北京市的区县数据... ], 21: [ { id: 211, name: '黄浦区' }, { id: 212, name: '徐汇区' }, // 更多上海市的区县数据... ], 31: [ { id: 311, name: '天河区' }, { id: 312, name: '越秀区' }, // 更多广州市的区县数据... ], // 更多城市的区县数据... }; // 监听省份下拉框的变化事件 document.getElementById('province').addEventListener('change', function() { var citySelect = document.getElementById('city'); var districtSelect = document.getElementById('district'); var provinceId = this.value; citySelect.innerHTML = '<option value="">请选择城市</option>'; districtSelect.innerHTML = '<option value="">请选择区县</option>'; if (provinceId) { // 根据省份选项生成城市选项 var cities = cityData[provinceId]; if (cities) { for (var i = 0; i < cities.length; i++) { var option = document.createElement('option'); option.value = cities[i].id; option.text = cities[i].name; citySelect.appendChild(option); } } } }); // 监听城市下拉框的变化事件 document.getElementById('city').addEventListener('change', function() { var districtSelect = document.getElementById('district'); var cityId = this.value; districtSelect.innerHTML = '<option value="">请选择区县</option>'; if (cityId) { // 根据城市选项生成区县选项 var districts = districtData[cityId]; if (districts) { for (var i = 0; i < districts.length; i++) { var option = document.createElement('option'); option.value = districts[i].id; option.text = districts[i].name; districtSelect.appendChild(option); } } } }); ``` 以上代码实现了一个简单的三级联动下拉框,您可以根据实际需求进行适当的修改和扩展。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值