对 v-for 生成的动态项目进行 Element-UI 验证
Posted
技术标签:
【中文标题】对 v-for 生成的动态项目进行 Element-UI 验证【英文标题】:Element-UI validation on dynamic items generated by v-for 【发布时间】:2018-09-23 11:12:46 【问题描述】:我想使用 element-ui 和 asyc-validator 验证表中的字段,但不知道该怎么做!没有找到任何合适的文档和讨论帖,所以在这里发布我的问题。
vue 模板:
<el-form :model='myForm' :rules='rules' ref='myForm'>
<div v-for="(item, index) in items" :key="index">
<div class="col">
<el-form-item label="Description" prop="description">
<el-input v-model="item.description"></el-input>
</el-form-item>
<div>
<div class="col">
<el-form-item label="Price" prop="price">
<el-input v-model="item.price"></el-input>
</el-form-item>
<div>
</div>
</el-form>
我试过这样设置规则,但它不起作用
rules:
"description": required: true, message: 'is required', trigger: 'blur' ,
"price": required: true, message: 'is required', trigger: 'blur'
这里是 jsfiddle:https://jsfiddle.net/cgL6y9kq/15/ 尝试提交表单,即使您填写了必填字段,也会出现错误。
【问题讨论】:
【参考方案1】:您需要使用索引动态设置 :props 并在 el-form-item 中添加规则。在此处查看 jsfiddle:https://jsfiddle.net/cgL6y9kq/34/
<el-form-item label="Description"
:prop="'items.' + index + '.description'"
:rules="required: true, message: 'description is required', trigger: 'blur'">
<el-input v-model="item.description"></el-input>
</el-form-item>
【讨论】:
我已经提交了 v-for 循环中的每个项目。那么如何验证一个特定的表单呢? 这对我不起作用,这不适用于更高版本吗? 使用最新的元素 ui (2.15.1) 为我工作 但你不能忘记使用内联:rules
以上是关于对 v-for 生成的动态项目进行 Element-UI 验证的主要内容,如果未能解决你的问题,请参考以下文章
vue使用v-for循环,动态修改element-ui的el-switch
element-UI,根据后台数据动态生成el-checkbox-group,点击提交获取绑定checked项以及实现显示默认checked项