Meteor autoform Form 隐藏字段不呈现 defaultValue 且不保存
Meteor autoform Form hidden fields not rendering defaultValue and not saving
我的自动表单架构中有两个隐藏字段,定义如下所示。我希望将这两个字段与其他字段一起保存,而不将它们显示给应用程序用户。但是我从呈现的自动表单中注意到 html 这两个隐藏字段没有价值,它们也不会与其他字段一起保存到数据库中。不确定我在这里可能遗漏/错了什么?感谢您的帮助
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'
}
...
并使用 omitFields
子句(注意您可以指定要省略的多个字段,用逗号分隔):
{{> quickForm id="invoiceForm" buttonContent="Insert" buttonClasses="btn btn-primary btn-sm" schema=Invoice type="method" meteormethod="saveInvoice" omitFields="category, foo, bar, ..."}}
我注意到您使用 method
作为表单类型。如果您手动设置保存数据的方法,您可以考虑在方法本身内指定默认值和自动值。它会给你更多的自由和控制你的数据。
您是否尝试过不将类别字段设为可选? defaultValue
和字段 optional
.
之间似乎存在概念性问题
我认为您的 aldeed 模式中不能有一个字段将作为隐藏字段呈现/保存在表单中。所以我建议你通过会话传递数据(你最初想传递一个隐藏字段)。
例如,如果您使用autoform >> meteormethod 来保存表单,那么您可以在服务器方法中保存会话内容。如果您不使用方法,那么您可能希望通过 Autoform.hooks >> onSubmit
传递隐藏数据
我的自动表单架构中有两个隐藏字段,定义如下所示。我希望将这两个字段与其他字段一起保存,而不将它们显示给应用程序用户。但是我从呈现的自动表单中注意到 html 这两个隐藏字段没有价值,它们也不会与其他字段一起保存到数据库中。不确定我在这里可能遗漏/错了什么?感谢您的帮助
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'
}
...
并使用 omitFields
子句(注意您可以指定要省略的多个字段,用逗号分隔):
{{> quickForm id="invoiceForm" buttonContent="Insert" buttonClasses="btn btn-primary btn-sm" schema=Invoice type="method" meteormethod="saveInvoice" omitFields="category, foo, bar, ..."}}
我注意到您使用 method
作为表单类型。如果您手动设置保存数据的方法,您可以考虑在方法本身内指定默认值和自动值。它会给你更多的自由和控制你的数据。
您是否尝试过不将类别字段设为可选? defaultValue
和字段 optional
.
我认为您的 aldeed 模式中不能有一个字段将作为隐藏字段呈现/保存在表单中。所以我建议你通过会话传递数据(你最初想传递一个隐藏字段)。
例如,如果您使用autoform >> meteormethod 来保存表单,那么您可以在服务器方法中保存会话内容。如果您不使用方法,那么您可能希望通过 Autoform.hooks >> onSubmit
传递隐藏数据