vue.js - 带有 BootstrapVue 可编辑表格行的 VeeValidate
问题描述
我遇到了在引导 b-table 和 veevalidate 上创建可编辑行的问题。是否可以创建多个 ValidationObservers 并通过调用一种方法来验证它们?
<b-table :items="items">
<template v-slot:cell(foo)="data">
<ValidationObserver>
<ValidationProvider v-slot="{ errors }" rules="required">
<input v-model="data.value" type="text" />
</ValidationProvider>
</ValidationObserver>
</template>
<template v-slot:cell(bar)="data">
<ValidationObserver ref="form">
<ValidationProvider v-slot="{ errors }" rules="required">
<input v-model="data.value" type="text" />
</ValidationProvider>
</ValidationObserver>
</template>
</b-table>
解决方案
由于<ValidationObserver>
显示了所有<ValidationProvider>
插槽中的聚合结果,因此您可以将一个 ValidationObserver 包裹在表格周围并像这样删除嵌套的
<ValidationObserver ref="form">
<b-table :items="items">
<template v-slot:cell(foo)="data">
<ValidationProvider v-slot="{ errors }" rules="required">
<input v-model="data.value" type="text" />
</ValidationProvider>
</template>
<template v-slot:cell(bar)="data">
<ValidationProvider v-slot="{ errors }" rules="required">
<input v-model="data.value" type="text" />
</ValidationProvider>
</template>
</b-table>
</ValidationObserver>
export default {
methods: {
validate() {
this.$refs.form.validate();
}
}
}
或者您可以像这样遍历每个 ValidationObserver 引用(仅当您在此组件中没有其他引用时才有效)
<b-table :items="items">
<template v-slot:cell(foo)="data">
<ValidationObserver ref="form1">
<ValidationProvider v-slot="{ errors }" rules="required">
<input v-model="data.value" type="text" />
</ValidationProvider>
</ValidationObserver>
</template>
<template v-slot:cell(bar)="data">
<ValidationObserver ref="form2">
<ValidationProvider v-slot="{ errors }" rules="required">
<input v-model="data.value" type="text" />
</ValidationProvider>
</ValidationObserver>
</template>
export default {
methods: {
validate() {
Object.keys(this.$refs).forEach(key => this.$refs[key].validate());
}
}
}
推荐阅读
- sql-server - 搜索电子邮件仅包含 X 字符的行
- java - 服务完成后如何禁用按钮?
- sql - DB2如何找到两个在同一日期活跃的用户
- postgresql - 将 Google CloudSQL Postgres 数据库连接到 Data Studio
- php - 致命错误:未捕获的 Facebook\WebDriver\Exception\UnknownServerException:等待驱动程序服务器以 ChromeDriver 和 Selenium 启动时超时
- shell - 搜索两个分号之间的字符串(值)并拆分为行
- android-fragments - 在格式化 Recyclerview 的数据时遇到问题
- hibernate - 如何从jpa entitymanager为psql“设置时区”?
- php - Rss 提要不返回来自数据库的所有行
- sql - SQL 比较列值