问题:input绑定的值是对象 obj 下面的子对象 obj.id 时,绑定的rules校验不生效。会出现已经输入值但还会提示id必填的情况。正常情况下绑定校验没有问题
<el-form ref="dataForm" :rules="rules" :model="temp">
<el-form-item label="编号:" prop="id" >
<el-input v-model="temp.obj.id" />
</el-form-item>
<el-form-item label="姓名:" prop="name" >
<el-input v-model="temp.name" />
</el-form-item>
</el-form>
temp: {
obj: { id: '', pass: '' },
name: '',
},
rules: {
id: [
{ required: true, message: 'id必填', trigger: 'change' },
],
name: [
{ required: true, message: 'name必填择', trigger: 'change' },
],
解决方案1:在规则定义与绑定时,prop绑定的规则结构 与 rules 下的数据结构 'obj.id' 一致
<el-form ref="dataForm" :rules="rules" :model="temp">
<el-form-item label="编号:" prop="obj.id" >
<el-input v-model="temp.obj.id" :disabled="true" />
</el-form-item>
</el-form>
rules: {
'obj.id': [
{ required: true, message: 'id必填', trigger: 'change' },
],
}
解决方案2:表单绑定的数据对象修改成对象的子对象
<el-form ref="dataForm" :rules="rules" :model="temp.obj">
当在Vue的el-form组件中,input绑定的是对象的子属性如obj.id时,rules校验可能不生效,导致已输入值但仍提示id必填。解决方法包括调整prop绑定为obj.id以匹配rules结构,或者将表单模型改为对象的子对象temp.obj。

被折叠的 条评论
为什么被折叠?



