同时使用带有集合和单独模式的quickForm似乎不起作用

时间:2015-06-25 13:04:45

标签: javascript forms meteor meteor-autoform meteor-collection2

我想在数据库中以秒为单位存储时间值。

在表单中,用户应该能够将其键入String(MM:SS)。提交后,字符串(MM:SS)应转换为秒。这就是为什么表单被验证的模式不同于用于在后端验证的模式(在将其写入数据库之前)。

所以我做了这里的假设(https://github.com/aldeed/meteor-autoform#autoform-1)并且我定义了两个模式,一个用于表单(使用time.type =" String"),另一个我附加到集合(time.type = Number)。

在模板中,我设置了两个参数collection="TimeItem"schema="SpecialFormSchema

最后,表单始终使用HTML编号输入字段呈现,并忽略表单架构

有人可以帮忙吗? 提前谢谢!

2 个答案:

答案 0 :(得分:0)

不支持集合和架构。你必须选择其中一个。

尝试使用挂钩来执行您要执行的操作: https://github.com/aldeed/meteor-autoform#callbackshooks

答案 1 :(得分:0)

It actually works as it should. My silly mistake was to experiment with different templates and worked on the wrong one and therefore did not see any results.

The working javascript:

// schema for collection
var schema = {
    time: {
        label: "Time (MM:SS)",
        type: Number // !!!
    },
    // ...
};
SongsSchema = new SimpleSchema(schema);
Songs.attachSchema(SongsSchema);

// schema for form validation
schema.time.type = String // changing from Number to String!
SongsSchemaForm = new SimpleSchema(schema);

What the template looks like:

{{>quickForm
   id="..."
   type="insert"
   collection="Songs"
   schema="SongsSchemaForm"
}}