Vue项目中element表单的循环校验
在工作中碰到了一个需求,就是返回数据在表单里循环显示,在提交的时候就得对表单进行循环校验,但是使用element普通的校验方法是不生效的。需要对el-form-item 设置单独的props和rules。props中items是循环的数组,index是循环的index,后边拼接的是需要校验对象的字段名,rules是校验规则可以再data中设置,校验方式都是一样的,话不多说直接上代码:<el-
·
在工作中碰到了一个需求,就是返回数据在表单里循环显示,在提交的时候就得对表单进行循环校验,但是使用element普通的校验方法是不生效的。需要对el-form-item 设置单独的props和rules。
props中items是循环的数组,index是循环的index,后边拼接的是需要校验对象的字段名,
rules是校验规则可以再data中设置,校验方式都是一样的,
话不多说直接上代码:
<el-row :gutter="80" v-for="(shop, index) in form.items" :key="index">
<el-col :span="11">
<!--props中items是循环的对象 index是循环的index 后边拼接的是需要校验对象的字段名,
:rules是校验规则可以再data中设置 -->
<el-form-item
label="货物名称"
:prop="'items.' + index + '.name'"
:rules="itemForm.checkName"
>
<el-input v-model="shop.name" autocomplete="off"></el-input>
</el-form-item>
</el-col>
<el-col :span="11">
<el-form-item
label="金额"
:prop="'items.' + index + '.subTotal'"
:rules="itemForm.checkSubTotal"
>
<el-input v-model="shop.subTotal" autocomplete="off"></el-input>
</el-form-item>
</el-col>
</el-row>
export default {
data(){
return {
itemForm:{
checkSubTotal: [
{
required: false,
trigger: "blur",
},
{
pattern: /((^[1-9]\d*)|^0)(\.\d{0,2}){0,1}$/,//
message: "金额格式不正确",
trigger: "blur",
},
],
checkName: [
{
required: true,
message: "请输入货物名称",
trigger: "blur",
},
]
}
}
}
}
更多推荐
已为社区贡献1条内容
所有评论(0)