vue给html动态添加属性,vue如何动态用js给html添加一个属性或者样式?

博客内容涉及使用Vue动态创建表格,其中包含Input输入框,并根据用户输入进行验证。遇到的问题是在Input为空时,验证类就已经应用,而需要在输入后才变红。解决方案可能涉及动态添加和移除样式,以及在输入、失去焦点等事件中调整验证状态。目前的代码片段展示了如何结合v-model和自定义方法checkValidClass进行验证。博主考虑将数据结构转换以适应这种场景,并探讨了转换前后的数据格式。
摘要由CSDN通过智能技术生成

问题描述

一般我们动态创建class,都是在循环的时候根据每一项的数据来判断的,现在我有一个table,table的行和列全是根据数据动态创建的,其中有几列是Input,(一个对象就是一行,列就是对象中的key, Input输入值就是这个key对应的值)我需要根据Input的输入完成之后,进行验证,验证不对该列的Input就要变红色。

这个时候可以根据绑定的列值写一个methods,然后样式通过这个methods来处理,但是这个时候,class在一开始Input为空的时候就会变红,但我需要在输入后再变红,该怎么做呢?

相关代码

<tr v-for="(item,index) in tableList" :key="item.guid">

<td v-for="l in listDataOption" :key="l.ID" :class="{noedit:l.CtmChr02 == 7}">

<input :disabled="leave" v-model="item[l.CtmChr01]" class="fz14" :class="{valid:checkValidClass(item,l.CtmChr01)}" v-if="l.CtmChr02 == 1 || l.CtmChr02 == 6"

type="text" value="" :placeholder="'请输入'+l.CtmChr01" @tap="isSelected(l,item)" @input="clearValid(item)"

@blur="checkValid(item,l.CtmChr01)" focus />

</td>

</tr>

methods:{

checkValidClass(item, p) {

var valid = false

if (item[p] == '') {

if (p != 'checked' && p != 'valid') {

item.valid = true

valid = true

return valid

}

} else {

if (p == '手机号') {

console.log(p)

if (!/^1\d{10}$/.test(item[p])) {

item.valid = true

var valid = true

return valid

}

} else if (p == '库存') {

if (!/^[0-9]+$/.test(item[p])) {

item.valid = true

valid = true

return valid

}

}

}

return valid

}

},

有没有什么方法可以直接动态添加属性或样式?

如果不行的话,我估计得把格式进行转换一下才能玩下去把,

比如改造成

row: {

cell: [

{key: '联系人', value: '赵嘿嘿', valid: false},

{key: '手机号', value: '1234568', valid: false}

]

}

最后保存的时候再转回来???

950-390_%E7%94%BB%E6%9D%BF-1.jpg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值