vue中如何做到下拉框既有select功能也有input功能

在我们做项目中能遇到各种问题,已有的框架不能满足我们的项目需求,这时我们就要更改一部分。我们通过改造el-select来实现我们的功能,既能下拉选择也能输入内容。现在需求是前输入,当下拉框内有相同的内容时直接替代,没有的话就直接展示在其中。效果如下:

1.这是相同的内容,实现可以选择,

 2.当内容在下拉框中没有时,就直接展示,

 3.通过其失去焦点事件,展示在框中,

 其代码如下:

<el-form-item label="查询资产 :" label-width="90px"">
            <el-select
              v-model="highForm.name"
              filterable
              clearable
              placeholder="请选择资产名称"
              @blur="selectBlur"
              @clear="selectClear"
              @change="selectChange"

            >
              <el-option
                v-for="item in listAPI"
                :key="item.id"
                :label="item.name"
                :value="item.id"
              ></el-option>
            </el-select>
     </el-form-item>

const selectBlur = e => {
   if (e.target.value !== '') {
    highForm.name = e.target.value;
    ctx.$forceUpdate(); // 强制更新
  }
};

const selectClear = () => {
  highForm.name = '';
  ctx.$forceUpdate();
};

const selectChange = val => {
  highForm.name = val;
  ctx.$forceUpdate();
};

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值