【bug】el-input的clear事件无法清空输入框内的值

在Vue应用中,遇到清空el-input输入框值的问题,尽管log显示值已为空,但输入框内容未更新。尝试使用this.set或this.nextTick无效。解决方案是确保form对象中有初始值,对于父子组件间通信,则需在父组件中处理清空事件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一般这样写,输入框就能清空了

              <el-input v-model="form.custCodeEnd"  clearable @clear="clear('custCodeEnd')" />
                   clear(key) {
                       this.queryParams[key] = ''
                    },

但是遇到了奇怪的现象,没有父子组件的嵌套,log打印值已经变成空的,但是输入框的还在,这个时候想到是不是要用this.set刷新下数据,或者this.set刷新下数据,或者this.set刷新下数据,或者this.nexttick(),都试了还是不行

解决方法:
在data中定义的form对象里,如下定义

form:{
custCodeEnd:''
}

可能是因为form里都是空的,找不到这个字段,不知道要清空哪一项

然后又遇到了一个父子组件的,子组件是表单,在子组件中像这么这样写的话,相当于在子组件里改变值,逆向改变不行,那就去父组件改变

<el-input v-model="form.custCodeEnd"  clearable @clear="clear('custCodeEnd')" />
 clear(key) {
      this.$set('clear', key)
   
    },

父组件的子组件上接收下

            <QueryForm          
              @clear="clear"
            ></QueryForm>

             clear(key) {
             this.form[key] = ''
                 },
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值