VUE 实现select联动效果

Vue获取下拉菜单的值,用v-model,只有点击下拉框的值才会赋值到下拉框中,并且初始化时下拉框里没有数据,而改用$event就不会出现这样的问题。

coding:

   v-model解决方式:

    <div style="width:100%;">

        <span class="two_float">二级联动:</span>
             <select v-on:change="indexSelect" v-model="indexId">
                <option v-for="option1 in YX" v-bind:value="option1.text">{{option1.text}}</option>
            </select>
            <select>
                <option v-for="option2 in selection" v-bind:value="option2.text">{{option2.text}}</option>
            </select>

    </div>

事件:获取value值

    indexSelect(){
            this.A = this.indexId;
            // console.log(this.A);

     },

改用$event解决:

     

<div style="width:100%;">

        <span class="two_float">二级联动:</span>
             <select v-on:change="indexSelect($event)">
                <option v-for="option1 in YX" v-bind:value="option1.text">{{option1.text}}</option>
            </select>
            <select>
                <option v-for="option2 in selection" v-bind:value="option2.text">{{option2.text}}</option>
            </select>

    </div>

事件:获取value值

    indexSelect(event){
            this.A = event.target.value;
            // console.log(this.A);

     },

下拉框中的值:

    YX:[
                {
                    text:'计信院',
                    ZY:[
                      {text:'软件工程'},
                      {text:'计算机科学与技术'},
                      {text:"信息安全"},
                    ]
                },
                {
                    text:'商学院',
                    ZY:[
                      {text:'旅游管理'},
                      {text:'工商管理'},
                      {text:"行政管理"},
                    ]
                },

            ]

计算联动数据值:实现思路

   computed : {
        selection :function(){
            for(var i = 0; i < this.YX.length; i++){
                if(this.YX[i].text == this.A){
                    return this.YX[i].ZY;
                }
            }
        },

   },


在这里要重点说一下event事件,

在触发DOM上的某个事件时,会产生一个事件对象event,这个对象中包含着所有与事件有关的信息。包含导致事件的元素event.target,事件的种类event.type,以及与特定事件的相关信息。






    

  • 7
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
Vue3 Select 联动可以通过监听 Select 组件的 change 事件实现。具体实现步骤如下: 1. 在 data 中定义需要联动的数据列表,如下: ``` data() { return { provinces: [ { value: 'jilin', label: '吉林省' }, { value: 'liaoning', label: '辽宁省' }, { value: 'hebei', label: '河北省' } ], cities: { 'jilin': [ { value: 'changchun', label: '长春市' }, { value: 'jilin', label: '吉林市' }, { value: 'siping', label: '四平市' } ], 'liaoning': [ { value: 'shenyang', label: '沈阳市' }, { value: 'dalian', label: '大连市' }, { value: 'anshan', label: '鞍山市' } ], 'hebei': [ { value: 'shijiazhuang', label: '石家庄市' }, { value: 'tangshan', label: '唐山市' }, { value: 'baoding', label: '保定市' } ] }, selectedProvince: '', selectedCity: '' } } ``` 2. 在模板中使用 Select 组件,如下: ``` <template> <div> <select v-model="selectedProvince" @change="onProvinceChange"> <option value="">请选择省份</option> <option v-for="province in provinces" :value="province.value">{{ province.label }}</option> </select> <select v-model="selectedCity"> <option value="">请选择城市</option> <option v-for="city in cities[selectedProvince]" :value="city.value">{{ city.label }}</option> </select> </div> </template> ``` 3. 在 methods 中定义 onProvinceChange 方法,该方法会在省份选择发生变化时被调用,根据选中的省份,更新城市列表数据,如下: ``` methods: { onProvinceChange() { this.selectedCity = '' // 清空城市选择 } } ``` 这样,就可以实现 Vue3 Select联动效果了。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值