一般有值,但是表单认证不通过,是因为设定的rules参数和model绑定的参数不一致,或者是地址部一直,这些需要注意的点查一下都有,就不赘述了。下面说说另外一中用法,:prop='formData.'+index+'.value'
遍历表单的情况下 表单检验
对于数组数据 如:
modelData:{
id:'123',
name:'用户数据',
formData:[ //关键数据
{
title:"姓名",
paramName:"name",
type:"text",
null:false, // 是否允许为空
value:''
},
{
title:"学号",
paramName:"No",
type:"text",
null:false,
value:''
},
{
title:"班级",
paramName:"classNum",
type:"text",
null:true,
value:''
},
]
}
//在methods里面通过遍历data数据 设置 infoRules 验证规则
this.modelData.formData.forEach(item=>{
let key = JSON.parse(JSON.stringify(item.paramName));
if(item.null){
this.infoRules[key] = [
{
required: true,
message: "必填项!",
trigger: "blur",
},
]
}
else{
this.infoRules[key] = [];
}
})
vue语句:
<el-form
ref="editFormRef"
label-width="80px"
size="mini"
:model="modelData"
>
<el-form-item v-for="(item, index) in modelData.formData" :key="item.paramName" :label="item.title" :prop='formData.'+index+'.value' :rules="editRules[item.paramName]">
<el-input v-model="item.value" type="text">
</el-input>
</el-form-item>
</el-form>
值得注意的是,data数据与el-form里面的值需要一一对应,el-form里面的:model=""绑定数据;el-form-item的v-for :label :prop :rule 配置好:prop='formData.'+index+'.value'与你的设置的data对象字段一致