Meteor autoform表单隐藏字段未呈现defaultValue且未保存

Meteor autoform表单隐藏字段未呈现defaultValue且未保存,meteor,meteor-autoform,Meteor,Meteor Autoform,我的自动表单模式中有两个隐藏字段,如下所示。我希望将这两个字段与其他字段一起保存,同时不向应用程序用户显示它们。但我注意到,从autoform呈现的html中,这两个隐藏字段没有任何值,而且它们不会与其他字段一起保存到DB中。不确定我这里可能遗漏了什么/错了什么?谢谢你的帮助 Invoice = new SimpleSchema({ clientid: { type: String, optional: true }, total: {

我的自动表单模式中有两个隐藏字段,如下所示。我希望将这两个字段与其他字段一起保存,同时不向应用程序用户显示它们。但我注意到,从autoform呈现的html中,这两个隐藏字段没有任何值,而且它们不会与其他字段一起保存到DB中。不确定我这里可能遗漏了什么/错了什么?谢谢你的帮助

  Invoice = new SimpleSchema({
    clientid: {
      type: String,
      optional: true
    },
    total: {
      type: String,
      label: 'Total Amount',
      optional: true
    },
    tax: {
      type: String,
      label: 'Taxes',
      optional: true
    },
    category: {
      type: String,              
      optional: true,
      autoform: {
        type: "hidden",                
        label: false
      },
      defaultValue: 'Test Category'
    }
  });

  {{> quickForm id="invoiceForm" buttonContent="Insert" buttonClasses="btn btn-primary btn-sm" schema=Invoice type="method" meteormethod="saveInvoice"}}

在我看来,最好将与表单相关的逻辑保留在
quickform
模板中,例如,在其他表单中重用模式

我建议您执行以下操作:

... 
},
category: {
   type: String,              
   optional: true,
   defaultValue: 'Test Category'
}
...
并使用
省略字段
子句(注意,您可以指定要省略的多个字段,用逗号分隔):


我注意到您正在使用
方法
作为表单类型。如果手动设置保存数据的方法,则可以考虑在方法本身中指定默认值和自动值。它将给您更多的自由和对数据的控制。

您是否尝试过不将“类别”字段设置为可选字段?在使用
defaultValue
和将字段设置为
可选的

之间似乎存在一个概念上的问题。我认为您的aldeed架构中不能有一个字段作为隐藏字段呈现/保存在表单中。因此,我建议您通过会话传递数据(您最初希望传递一个隐藏字段)


例如,如果使用autoform>>方法保存表单,则可以在服务器方法中保存会话内容。如果您没有使用某个方法,那么您可能希望通过Autoform.hooks>>onSubmit传递隐藏的数据

谢谢,但我并不是试图在表单中隐藏字段,而是尝试在表单上有两个没有任何UI表示的字段,但是HTML代码中会存在这两个字段中的每一个都有一个值…有意义吗?再次感谢您为什么希望这些字段“存在于HTML代码中”但被隐藏?这没有用。您可以使用defaultValue或autoValue让它们获取特定的值。无论如何都必须这样做,因为字段没有显示给用户。@kaoskeya好吧,我有一个案例需要它谢谢,我最终通过Autoform.hooks完成了这项工作
{{> quickForm id="invoiceForm" buttonContent="Insert" buttonClasses="btn btn-primary btn-sm" schema=Invoice type="method" meteormethod="saveInvoice" omitFields="category, foo, bar, ..."}}