一直在努力使用自动表单来预填充数据,尤其是在隐藏字段中。
我已经尝试了很多东西,包括使用 autoValue 和 defaultValue,但是 autoValue 在服务器端进行了验证,我需要从客户端的页面中获取一个值(路由器当前路由名称),所以在查找时它会失败在 .clean 函数中,defaultValue 接受一个值,而不接受函数。
如何将值传递给表单以预填充某些字段而不显示该字段?
最佳答案
所以,我发布了这个问题,因为我一直在努力寻找答案并想分享。
最后,您可以将 doc
属性传递给表单
形式如下:
{{> quickform
collection"mycollection"
id="formid"
type="method"
...
doc=mydoc
}}
然后您需要一个模板助手来创建文档:
Template.myform_template.helper({
mydoc: function() {
return {field1: value1, field2:value2 };
}
})
您不必填写所有字段,只需填写您想要预填写的字段,就像“更新”表单的工作方式一样。
为了不在表单中显示此值,我曾尝试使用 omitFields
属性,但这不起作用,因为文档中的字段已被删除。所以我找到的唯一方法是将架构中的字段类型声明为“隐藏”
mycollection.attachSchema(new SimpleSchema({
field1: {
type: String,
optional: false,
autoform: {
type: "hidden"
}
}
}))
给你。
现在,在方法中调用 schema.clean(doc) 时,该值并未真正“验证”,因为模式中没有可验证的内容,因此您应该在方法调用中自己验证这些值。
关于javascript - meteor ,自动表格,预填充输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32671226/