el-select实现可下拉选择和手动输入

<el-select
     v-model="form.produce"
     clearable
     filterable
     placeholder="请选择产品"
     allow-create
 >
     <el-option
         v-for="item in produces"
         :key="item.value"
         :label="item.label"
         :value="item.value"
     />
 </el-select>

我们可以在elementUi官方文档中看到,已经帮我们写好了相应的属性,我们直接使用就可以啦~~~~

注意搭配filterable使用哦~,不用遗漏了

---------------------------------------------------优化----------------------------------------------------------------------

但是我们写好之后发现没有达到最佳的效果,需要手动去选择或点击回车才能将我们手动输入的值填充到框中

用到select的blur事件

<el-select
   v-model="form.produce"
   clearable
   filterable
   placeholder="请选择产品"
   @blur="productSelect"
   allow-create
>
   <el-option
       v-for="item in produces"
       :key="item.value"
       :label="item.label"
       :value="item.value"
   />
</el-select>




productSelect(e) {
     let value = e.target.value; // 输入框值
      if(value) { // 只有输入才有这个值,下拉框选择的话 这个值为空
          this.form.produce = value
      }
  }

使用ref来进行赋值

<el-select
   v-model="form.produce"
   ref="produceRef"
   clearable
   filterable
   placeholder="请选择产品"
   @blur="productSelect"
   allow-create
>
   <el-option
       v-for="item in produces"
       :key="item.value"
       :label="item.label"
       :value="item.value"
   />
</el-select>




productSelect() {
    this.form.produce = this.$refs.produceRef.selectedLabel
   )

使用allow-create 输入内容优先匹配项,没匹配到会创建输入得项

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值