关于el-select allow-create输入时按tab或者直接点击文本值会消失的问题(记录

el-select 在输入时无法使用@keyup @keydown,我便使用如下方法:

<el-select v-model='value' allow-create>
	<el-option lable='张三' value='1'>张三</el-option>
</el-select>

看el-select组件的源码知道
在输入的时候会给一个叫selectedLabel赋值
所以这就简单了, 首先el-select加一个属性ref=“select” ,这样我们可以用(‘this.¥refs.select.selectedLabel’)获取到输入时的值
这样只需要在输入时强制给value赋值就可以了, (无法使用watch监听this.$refs.select.selectedLabel改变)

代码:

<el-select v-model='value' ref='select' allow-create>
	<el-option lable='张三' value='1'>张三</el-option>
</el-select>
<span v-if="this.$refs.select"><!-- 输入时强制赋值 -->
      {{changeThis($refs.select.selectedLabel)}}
</span>

changeThis(val) {
      if(val != '' && val != undefined) {
        this.value = val;
      }
      return '';
    },

可能会碰到强制赋值无法用clearable 清空文本的问题,只需要在el-select 组件上加上,@clear=“方法” 在方法里面清空掉 $refs.select.selectedLabel便可

就这样了,方式之一吧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值