Javascript Meteor、自动表单、预填充输入
一直在努力使用自动表单来预填充数据,尤其是在隐藏字段中 我尝试过很多方法,包括使用autoValue和defaultValue,但autoValue在服务器端进行验证,我需要从客户端的页面(路由器当前路由名称)中获取一个值,因此在.clean函数中查找时失败,defaultValue接受一个值,而不接受函数Javascript Meteor、自动表单、预填充输入,javascript,meteor,meteor-autoform,Javascript,Meteor,Meteor Autoform,一直在努力使用自动表单来预填充数据,尤其是在隐藏字段中 我尝试过很多方法,包括使用autoValue和defaultValue,但autoValue在服务器端进行验证,我需要从客户端的页面(路由器当前路由名称)中获取一个值,因此在.clean函数中查找时失败,defaultValue接受一个值,而不接受函数 如何将值传递给表单以预填充某些字段,而不显示字段?因此,我发布了这个问题,因为我一直在努力找到答案,并希望与大家分享 最后,您可以将doc属性传递给表单 其形式如下所示: {{> qu
如何将值传递给表单以预填充某些字段,而不显示字段?因此,我发布了这个问题,因为我一直在努力找到答案,并希望与大家分享 最后,您可以将
doc
属性传递给表单
其形式如下所示:
{{> quickform
collection"mycollection"
id="formid"
type="method"
...
doc=mydoc
}}
然后您需要一个模板助手来创建文档:
Template.myform_template.helper({
mydoc: function() {
return {field1: value1, field2:value2 };
}
})
您不必填写所有字段,只需填写您要预填写的字段,就像“更新”表单的工作方式一样
为了不在表单中显示此值,我尝试使用省略字段
属性,但由于文档中的字段被删除,因此该属性不起作用。因此,我找到的唯一方法是使用
mycollection.attachSchema(new SimpleSchema({
field1: {
type: String,
optional: false,
autoform: {
type: "hidden"
}
}
}))
给你
现在,在方法中调用schema.clean(doc)时,该值并不是真正的“已验证”,因为在模式中没有可验证的内容,所以您应该在方法调用中自己验证这些值。当我需要atoform的预填充字段时,我使用AutoFom.hooks,在template.html文件中我不添加这些字段 TemplateFile.html
{{#autoForm schema="Schemas.Myschema" id="idForm" resetOnSuccess="true" type="method" meteormethod="server/insertCustomizedTemplate"}}
{{> afQuickField name='Field1'}}
{{> afQuickField name='Field2'}}
{{> afQuickField name='Field3'}}
<button href="" type="submit" class="btn btn-success">
Send
</button>
{{/autoForm}}
我想这是个不错的选择。谢谢你的发帖。方法端的.clean(doc)函数如何解析这些值?PS:我正在寻找一种与quickform一起工作的解决方案,而不必定义字段和构建表单。我想你的解决方案也应该使用quickform,使用挂钩。
AutoForm.hooks({
idForm: {
before: {
method: function(doc) {
doc.Dummyfield1 = 'Harcoded Value';
doc.Dummyfield2 = 'Harcoded Value';
return doc;
}
},
onSuccess: function(formType, result) {
},
onError: function(formType, error) {
}
}
});