el-input无法进行输入以及el-radio触发了两次点击事件


前言

记录使用elementUI的时候遇到的问题。例如:el_input无法进行输入、el-radio触发单次点击事件等

一、el-input无法进行输入

原因1. 标签嵌套太深

如果标签嵌套太深,会导致无法获取到DOM,需要$forceUpdate()强制更新

 <el-input type="text" v-model="value" @change="change()"></el-input>
 data(){
    return {
       value:'',
      }
 },
 menthods:{
    change(){
       this.$forceUpdate()
    }
}

原因2. el-input标签上没有使用v-model

原因3. 使用template作为el-input的父标签

这种需要在template标签上添加slot-scope属性

 <template slot-scope="scope">
      <el-input type="text" v-model="value"></el-input>
 </template>

二、el-radio触发了两次点击事件

1. 与lable的默认事件有关

<label >
      <span> <input type="radio"/></span>
      <span>销毁</span >
</label>

el-radio上的方法添加在label标签上的,在点击之后

  1. 点击了labe标签,触发chooseIdClick方法
  2. 点击了labe标签,label标签与input标签关联,input通过冒泡触发了chooseIdClick方法,因此一共触发了两次点击事件。

2. 解决:在input点击时触发

<el-radio-group v-model="type" >
      <el-radio :label="1" @click.native="chooseIdClick($event)">转派</el-radio>
      <el-radio :label="2">销毁</el-radio>
</el-radio-group>
 chooseIdClick(e) {
      if (e.target.tagName != 'INPUT') {
        return
      }
     // 执行其它代码
    }
  • 8
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值