使用节点JS(npm表单)将特定名称的多个表单输入保存到一个数组中

时间:2015-03-03 02:13:39

标签: javascript arrays node.js express

我在做我想象的非常简单的任务时遇到了相当大的麻烦。虽然我尝试的任何东西似乎都没有用,但我已经查看了SO和各种文档,因此我想在这里发帖。

我尝试做的是处理我的html表单(通过JADE模板化),并将特定输入(name =" ListContent []")中的所有数据保存到一个单数组中,每个输入的数组中有一个值。我需要采用这种方法,因为listContent输入的数量是动态的,我不知道需要处理多少。

我的表单看起来像这样:

<form method='post'>
    <input name='listTitle'></br>
    <input name='listDescription'></br>
    <input name='listContent[]'></br>
    <input name='listContent[]'></br>
    ...
    ...
    <input name='listContent[]'></br>
    <input name='listContent[]'></br>
    <input name='listContent[]'></br>

    <button type='button' onClick='addInput('listContent');'>
    <button type='submit'>
</form>

这是一个像这样的形式; enter image description here

我可以按如下方式检索listName和listDescription的POSTed值,但我对如何处理listContent并将所有输入保存到数组中感到茫然:

&#34; {&#39;第1行&#39;,&#39;第2行&#39;,&#39;第3行&#39;}&#34;

var listName = form.data.listName;  // Works
var description = form.data.listDescription;  // Works 
var contentRaw = form.data.listContent;  // Just returns blank

任何建议都将不胜感激。谢谢!

编辑: 我使用npm表单(https://www.npmjs.com/package/forms)来解析/处理我的表单数据。我定义的表单架构如下:

var simpleNewListForm = forms.create({
    listToken: forms.fields.string({
        required:true
    }),
    listName: forms.fields.string({
        required: true
    }),
    listDescription: forms.fields.string({
        required: true
    }),
    listContent: forms.fields.array(),
});

1 个答案:

答案 0 :(得分:1)

我看到您在创建表单时使用listContents,但在解析表单时访问listContent。当我尝试使用您显示的相同代码生成表单时,listContents的输入名称在生成的HTML表单中为listContents