问题
在使用element form表单时,表格表单,表格如下:
校验规则如下
<el-form-item :rules="activityVoList.checkedServerList" :prop="'activityVoList.' + scope.$index + '.checkedServerList'" label-width="0">
<el-checkbox-group v-model="scope.row.checkedServerList">
<el-checkbox v-for="item in service[scope.$index]" :key="item.service_name" :label="item.service_name" @change="handleChange">{{ item.service_name }}</el-checkbox>
</el-checkbox-group>
</el-form-item>
activityVoList:{
checkedServerList:[
{ type: 'array', required: true, message: '请至少选择一项服务', trigger: 'change' },
{validator:validatecheck,trigger: 'change'}
],
},
const validatecheck=(rule,value,callback)=>{
debugger
console.log(rule)
console.log(value)
callback();
}
但是这样写,进不了校验规则方法,按以下修改后,可以进校验规则方法:
<el-form-item
:rules="[
{type:'array',validator:(rule,value,callback)=>{validCheckedServer(rule,value,callback)} , trigger: 'change' },
]"
:prop="'activityVoList.' + scope.$index + '.checkedServerList'" label-width="0">
<el-checkbox-group v-model="scope.row.checkedServerList">
<el-checkbox v-for="item in service[scope.$index]" :key="item.service_name" :label="item.service_name" @change="handleChange">{{ item.service_name }}</el-checkbox>
</el-checkbox-group>
</el-form-item>
这样修改后可以进校验规则方法,但是取到的’value’值为undefined,
没找到原因,无奈只能手动取到需要校验的值,然后进行校验,