ElementUI下拉框取消显示下拉选项并弹出对话框

工作有个需求,要将下拉框的选项隐藏,并点击下拉框弹出对话框来完成数据选择。

这是HTML部分

 <el-select
    filterable
    multiple
    placeholder="全部"
    collapse-tags
    v-model="item.wardSelect.display"
    value-key="value"
    @focus="openDialog('choose', index)"
    ref="choose"
>
   <el-option
       v-for="(option, optinIndex) in allTag"
       :key="option.tagID + 'option' + optinIndex"
       :label="option.tagName"
       :value="option.tagID"
   ></el-option>

主要是这个@focus,然后这下面是openDialog方法的实现

openDialog(ref, index) {
  // 判断这个ref是否是一个数组
  if (this.$refs[ref] instanceof Array) {
        this.$refs[ref][index].blur();
      } else {
        this.$refs[ref].blur();
      }
      if (!this.dialogVisible) {
        this.dialogVisible = true;
      }
}

网上找了一些文章,都是说直接通过$refs获取到组件后直接调用blur方法就可以了,但是我直接调用发现会报underfind错误,打印了一下这个ref,发现是个数组,后面别的地方也用到了这个方法,就会出现不是数组的情况,于是就有了这个判断,根据传进来的ref,判断一下是不是是数组,数组的话,因为是v-for遍历生成的,就把index传过来,将相应的el-select选项隐藏,不是数组的情况下就直接调用blur方法就行了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值