在完成我想象中相当简单的任务时,我遇到了相当大的麻烦。我已经浏览过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>
这被渲染为这样的形式;
我能够检索 listName 和 listDescription 的 POST 值,如下所示,尽管我不知道如何处理 listContent 并将所有输入保存到数组中,如下所示:
“{'第1行','第2行','第3行'}”
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(),
});
最佳答案
我发现您在创建表单时使用 listContents
,但在解析表单后访问它时使用 listContent
。当我尝试使用您显示的相同代码生成表单时,listContents
的输入名称是生成的 HTML 表单中的 listContents
本身。
关于javascript - 使用 Node JS 将特定名称的多个表单输入保存到一个数组中(npm 表单),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28822954/