el-input 动态添加class行内样式的一些坑

 业务:需要通过右边的颜色选择器去修改el-input中的颜色

 初次实现:想着给el-input 添加动态class

<el-input
v-modm.goods_name"/>
<el-color-picker
v-model="editForm.goods_name_style"
@change="changeColor"/>

初次结果:并没有生效,通过检查元素得知,el-input会默认给我们在外层嵌套一个div,样式会默认加在div上,所以输入框里面的文字无法添加上样式

尝试过给他添加/deep/ el-input__inner使用类样式确实可以添加上,但是这样就不能实现动态颜色赋值, 如果要这样的话就需要引入动态css,比较麻烦

最后解决方法:通过ref绑定el-input元素,通过打印我们可以首先拿到外层的div,并且获取到他里面的input,最进行动态class进行赋值

<el-input
 ref="commodityName"
v-modm.goods_name"/>
<el-color-picker
v-model="editForm.goods_name_style"
@change="changeColor"/>

 changeColor() {
      console.log( this.$refs.commodityName,' this.$refs.commodityName');
      this.$refs.commodityName.$refs.input.style.color = this.editForm.goods_name_style
 },

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值