javascript - 如何向使用 for 循环呈现到页面的数组中的特定项目添加验证?
问题描述
我正在使用 Vue JS(使用 Vuetify 框架)来创建一个表单:
<v-text-field
v-for="items in itemsArray"
:key="items.id"
v-model="items.data"
:label="items.name"
></v-text-field>
这是 itemsArray 的样子:
data: () => ({
itemsArray: [
{id: 6, name: 'Name'},
{id: 1, name: 'Email'},
{id: 17, name: 'Age'},
{id: 3, name: 'Height'},
{id: 4, name: 'Contact Number'},
],
}),
如何向数组中的特定项目添加验证?例如,我希望它具有 id: 4 和名称 'Contact Number' 的项目最多有 8 个字符,这些字符只能是数字。
我已经检查了 Vuetify 文档,但是它没有解释如何验证何时使用 for 循环将项目呈现到页面
解决方案
尝试将验证规则添加到要验证的项目,如下所示:
itemsArray: [
{id: 6, name: 'Name'},
{id: 1, name: 'Email'},
{id: 17, name: 'Age'},
{id: 3, name: 'Height'},
{id: 4, name: 'Contact Number',rules:{required: value => !!value || 'Required.', counter: value => value.length <= 8 || 'Max 8 characters'}},
]
在模板中:
<v-text-field
v-for="items in itemsArray"
:key="items.id"
v-model="items.data"
:label="items.name"
:rules='items.rules?Object.values(items.rules):[]'
></v-text-field>
请检查这支笔
推荐阅读
- thingsboard - 升级到 2.4 后,thingboard 每 10 分钟断开一次客户端
- azure - PowerApps 自定义连接器 AADSTS50011:请求中指定的回复 url 与为应用程序配置的回复 url 不匹配
- flutter - 如何在flutter中将int转换为Uint32
- python - 使用不同长度的数组列表索引一维数组
- reactjs - 在 ReactJS 中使用 axios 时,在 IE11 中未定义 promise
- docker - drone.io 使用私有仓库从镜像中拉取
- r - 如何将数据框中的每两行“合并”为一行?
- django - Django:缓存会话与简单缓存之间的区别?
- java - 如何使用@Query注解在spring data jpa中插入自定义查询
- hibernate - 了解 Kotlin 枚举转换器