element ui —— el-select 添加可输入功能且失焦后自动录入

el-select 添加可输入功能且失焦后自动录入

  • 场景
  • 思路
  • 方法

场景

vue2 + element ui 的项目中,产品希望 el-select 可以支持输入功能,也就说用户既可以下拉选择,也可以输入任意内容。

思路

通过阅读element ui 的官方文档,发现 allow-create这个属性就可以支持用户创建新条目,但美中不足的是,创建新条目后还需要手动选择点击一下,否则无效

在这里插入图片描述

 这个效果不太理想,我们希望的是当手动输入内容时,el-select 可以充当 el-input 使用,也就是输完失焦即将数据写上。此时可以借助失焦事件blur。

方法

allow-create 属性需配合 filterable 使用;
default-first-option 属性配合 filterable ,按下回车时自动选择第一个匹配项,即按下回车键时可以将输入数据写上,更好的实现了el-input 的效果。

给el-select绑定一个blur事件,参数一定要写成$event($event 是 vue 提供的特殊变量,用来表示原生的事件参数对象 event。

注意要对e.target.value进行去除空格的判断:e.target.value.trim()!== ''

<el-select v-model="type" clearable filterable allow-create default-first-option @blur="onTypeBlur($event)">
    <el-option
        v-for="(item,i) in list"
        :key="i"
        :label="item.label"
        :value="item.value">
    </el-option>
  </el-select>
onTypeBlur(e) {
  if (e.target.value.trim()!== '') {
    //e.target.value就是录入的内容
    this.type = e.target.value;
    // 如果是对象,要使用this.$set方法
    // this.$set('typeObj', 'name', e.target.value)
  }
}

原文链接:element ui - el-select 添加可输入功能_el-select 可输入_nunumaymax的博客-CSDN博客

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值