javascript - Vee Validate 处理动态输入行
问题描述
我正在尝试验证动态添加的输入字段。每当我只有一行输入要验证时,它都很好用。
但是,每当我添加一行时,验证都会验证第一行和添加的行 - 而不是单独验证每一行。这就是问题案例。
问题案例示例:
文档建议为 :key 提供一个唯一的 id,但是,即使在添加了一个唯一的 id 字段之后,我也看到了这个问题。
这是我生成输入的代码
<!-- Generate input fields and v-model -->
<tr v-for="(row, rowIndex) in dataFields" :key="row.id">
<td v-for="(fieldName, fieldNameIndex) in fieldNames" :key="fieldNameIndex">
<!-- create first row and add valdiation -->
<input
type="text"
class="input-style"
v-model="dataFields[rowIndex][fieldName]"
v-validate.initial="'required'"
:name="fieldName"
>
<br>
<span> errors.first(fieldName)}}</span>
这是该问题的完整演示: https ://codesandbox.io/s/vue-template-rtjj9?fontsize=14
如何为每个动态添加的行添加验证?
解决方案
您可以添加rowIndex
名称以使它们不同
<tr v-for="(row, rowIndex) in dataFields" :key="row.id">
<td v-for="(fieldName, fieldNameIndex) in fieldNames" :key="fieldNameIndex">
<!-- create first row and add valdiation -->
<input
type="text"
class="input-style"
v-model="dataFields[rowIndex][fieldName]"
v-validate.initial="'required'"
:name="fieldName + rowIndex"
:data-vv-as="fieldName"
>
<br>
<span @click="clicky()">{{errors.first(fieldName + rowIndex)}}</span>
</td>
</tr>
请注意,您可以使用data-vv-as
自定义验证消息中的名称字段。
推荐阅读
- windows-10 - 启用了 OneDrive Files On-Demand 的兼容防病毒软件
- php - 当用户未填写必填字段时,Laravel 向会话输入数据
- android - Flutter Blue 设置通知
- sql - 在特定位置添加空格的更新 | SQL 服务器
- amazon-web-services - 同一子网内的 AWS VPC EC2 连接
- r - 广义线性模型上 stepAIC 上下文中的逻辑下标太长
- javascript - 多个带有 html 内容的tippy.js 工具提示
- java - 将来自 JTextField 的输入存储在变量中
- sql - 根据申请日期选择状态
- sql - Oracle - 列出我在架构中拥有的权限 - 命令