element ui - 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 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) {
    this.type = e.target.value;
    // 如果是对象,要使用this.$set方法
    // this.$set('typeObj', 'name', e.target.value)
  }
}
GitHub 加速计划 / eleme / element
12
1
下载
A Vue.js 2.0 UI Toolkit for Web
最近提交(Master分支:10 个月前 )
c345bb45 1 年前
a07f3a59 * Update transition.md * Update table.md * Update transition.md * Update table.md * Update transition.md * Update table.md * Update table.md * Update transition.md * Update popover.md 1 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐