流星AutoForm验证不是表格形式的项目的最佳做法?

问题描述 投票:0回答:1

[AutoForm当您要使用架构验证表单时非常有用,但是通常表单不包含架构中的所有数据,因此会出现验证错误。

例如,我有一个submit按钮,在确定表单完全有效之前将其禁用,但是由于该表单不包含架构中的所有数据,因此它永远无法显示其完全有效。 >

说你有一个模式

ShoppingCartSchema = new SimpleSchema({
  itemsOrdered: {
    type: [Object],
    optional: false,
  },
  totalPrice: {
    type: Number,
    optional: false,
  },
  customerAddress: {
    type: Object,
    optional: false
  },
  systemGeneratedInfo: {
    type: Object,
    optional: true,
    blackbox: true
  },
});

ShoppingCarts.attachSchema(ShoppingCartSchema);

我的表单代码将类似于:

{{> quickForm collection="ShoppingCarts" id="shoppingCartForm" type="insert"}}

显然,您不希望totalPrice成为用户自己填写的表单上的一项。 systemGeneratedInfo可能是您的代码根据表单值生成的对象,但是它不会出现在表单本身上。

您可以将totalPrice放入隐藏的表单元素中,但这似乎很粗略。您确实不想使用systemGeneratedInfo来做到这一点。

[还有什么其他策略可以处理对象的未显示在表单上的项目,但是仍然可以完全验证前端显示的表单?

AutoForm在您要使用架构验证表单时非常有用,但是通常表单并不包含架构中的所有数据,因此会出现验证错误。例如,我有一个...

meteor meteor-autoform
1个回答
0
投票

您必须使用schemaquickFormautoForm字段。然后,您创建模板助手以将架构传递给表单(或者,如果您的架构在全球可用,则只需将Schemas.someSchema传递给表单)。

© www.soinside.com 2019 - 2024. All rights reserved.