在验证规则中获取表单数据
在 FormCreate 中,validator
方法的 this 指向已修改为包含 api
属性。通过 this.api
,开发者可以访问表单 API 以获取或操作其他字段的值。
配置示例
以下示例展示了如何在验证规则中使用表单 API 来实现交叉验证,即验证的一个字段值依赖于另一个字段的值。
示例代码
js
const rules = [
{
type: 'input',
field: 'cost_price',
title: '成本价',
},
{
type: 'input',
field: 'goods_price',
title: '价格',
validate: [
{
required: true,
validator(val, rule, callback) {
const api = this.api; // 获取表单API实例
const costPrice = api.getValue('cost_price'); // 通过API获取字段cost_price的值
// 简单验证逻辑:价格不能低于成本价
if (val < costPrice) {
callback(new Error('价格不能低于成本价'));
} else {
callback(); // 验证通过
}
}
}
]
}
];
解释
- 字段定义: 表单包含两个输入框:
cost_price
(成本价)和goods_price
(价格)。 - 交叉验证: 在
goods_price
字段的验证规则中,通过this.api
获取cost_price
字段的值。 - 自定义验证逻辑: 若输入的价格小于成本价,则通过
callback
传递错误信息,诱发验证失败;否则,调用callback()
表示验证通过。