我是meteor的新手,我想创建一个表单,其中一个字段的值决定autoform中另一个字段的值。让我们将设置类型设置为“A”,“B”和“C”,因此当我选择“A”时,将加载一个autoform。我已将此表格设为通用,即它将显示所有A,B和C.
{{#each users}}
{{> afQuickField name='userEmail' value=userEmail readOnly=true }}
{{> afQuickField name='Setup' value=type readOnly=true}}
{{> afQuickField name='Profile' options='allowed' }}
{{> afQuickField name='Purpose' }}
{{> afQuickField name='count' options='allowed' }}
{{> afQuickField name='PackageDirectory' options='allowed' }}
{{> afQuickField name="logName" options=LogName }}
{{/each}}
计数选项应为:
1.对于“A”计数选项应为9,11,12
2.对于“B”,它是1.
3.对于“C”,它是5.
在模式中,我编写了这样的代码
Setup:{
type: String,
label:"Setup",
optional:false,
defaultValue:type
},
count:{
type: String,
label:"No. Of count",
optional: true,
allowedValues:["9","11","12"],
autoform:{
afFieldInput:{
firstOption:"(Select the count)"
}
}
}
所以当我选择设置“A”时,我应该得到三个下拉选项,当我点击“B”和“C”时,我应该分别得到默认值1和5。 任何人都可以解决我的问题吗?
答案 0 :(得分:0)
您可以使用getFieldValue
获取特定字段的值,并根据该字段从模板帮助器返回一组option
或defaultValue
。
找到文档here
所以按照你的代码:
<强> form.html:强>
...
{{#autoForm id="sampleFormID" ... ... }}
{{> afQuickField name='Setup' value=type readOnly=true}}
{{> afQuickField name='count' options=allowedOptionHelper defaultValue=defaultValueHelper }}
...
{{/autoForm}}
<强> form.js 强>
Template.templateName.helpers({
allowedOptionsHelper: function() {
if (AutoForm.getFieldValue('Setup', 'sampleFormID') === 'A') {
return [{label:"9", value:"9"},{label:"11",value:"11"},{label:"12", value:"12"}];
else
if (AutoForm.getFieldValue('Setup', 'sampleFormID') === 'B') {
// return the options for B
} else if (AutoForm.getFieldValue('Setup', 'sampleFormID') === 'C')) {
// return the options for C
}
},
defaultValueHelper: function() {
if (AutoForm.getFieldValue('Setup', 'sampleFormID') === 'A') {
return 11 //or whatever the defaultValue is;
}
//likewise for options B and C
}
});
<强> schema.js 强>
...
...
count:{
type: String,
label:"No. Of count",
optional: true,
autoform:{
afFieldInput:{
firstOption:"(Select the count)"
}
}
}
...
...