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