Skip to content

在验证规则中获取表单数据

在 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() 表示验证通过。

FormCreate 是一个开源项目,基于 MIT 许可证发布,欢迎个人和企业用户免费使用