Vue3+ts+elment plus ,使用el-table搭配el-form编辑数据,需要数据必填并且比大小,在做表单校验使用validate时发现问题,返回的值不正确导致有数据问题仍然能提交,倒腾一天了没有想出来问题在哪
await formRef.value.validate((valid, fields) => {
console.log(valid, fields)
})
打印结果true undefined
el-form-代码如下
<el-form ref="formRef" :model="scope.row">
<!-- 1 -->
<template class="flex justify-around mb-5px">
<el-form-item prop="a1" :rules="minRange1(scope.row)" class="w-30%">
<el-input
v-model="scope.row.a1"
size="small"
placeholder="最小值"
:formatter="(value) => `${value}`.match(/\d+\.?\d{0,2}/)"
>
<template #append>PPM</template>
</el-input>
</el-form-item>
rules 代码如下
const minRange1 = (row) => {
return [
{ required: true, message: '请输入指标', trigger: 'blur' },
{
validator: (rule, value, callback) => {
if (row.a2) {
if (Number(row.a1) > Number(row.a2)) {
console.log('检查到了')
callback(new Error('不能大于最大值'))
} else {
callback()
}
} else {
callback()
}
},
trigger: ['change', 'blur']
}
]
}