<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 输入内容优先匹配项,没匹配到会创建输入得项

Logo

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

更多推荐