javascript - 如何通过表单数据提交获取对象数组下的多个键值对
问题描述
我有一个表单数据,我在其中使用循环生成输入类型的文本字段。
所以在循环的帮助下,当我通过检查元素打开表单数据时,我得到了这样的东西:
< input type="text" name="position1" />
< input type="text" name="position2" />
< input type="text" name="position3" />
< input type="text" name="position4" />
当我提交表单时,在 Node.js 上,当我通过 request.body 获取请求时,我得到了这样的结果:
{
position1: '1',
position2: '2',
position3: '3',
position4: '4'
}
我在看的是什么
[
{position1: '1'},
{position2: '2'},
{position3: '3'},
{position4: '4'},
]
所以我使用map函数在mongodb上一一更新值或使用bulkwrite函数一次更新。
我试图将 [] 放在 name="" 的值之前。喜欢这个 name="[]position1" 但没有成功。
有没有人可以指导我。
解决方案
如果你想要一个集合/数组,你可以生成如下形式:
<input type="text" name="positions[]" />
<input type="text" name="positions[]" />
<input type="text" name="positions[]" />
<input type="text" name="positions[]" />
在节点 js/server 端,你可以期望你的数据是req.body.positions
这样的
[
1,
2,
3,
4
]
如果名称末尾的后缀或数字是您想要保留的东西,您可以考虑转换您的数据,例如
var transformedPositions = req.body.positions.map(function(positionValue,index){
var newKeyName = "position"+(index+1);
return {newKeyName:positionValue}
})
然后会给你这个transformedPositions
[
{position1: '1'},
{position2: '2'},
{position3: '3'},
{position4: '4'},
]
推荐阅读
- spring - 邮递员在正确的路径上为 REST API 返回 404
- git - Git挂在状态/添加/提交
- swift - 如何在 Spritekit 中的 removeFromParent 之后再次开始操作?
- ios - 如何在 Swift4 中以编程方式实现 UIScrollView 和 UIPageControl?
- java - 在 Eclipse 中引用外部库时出现 java.lang.NoClassDefFoundError
- python - 带有 Python SSL 套接字的自签名证书
- docker - docker-compose 无法识别 sudoers 容器文件
- reactjs - React App 中的多个子域 + 入口点
- python - 基于数据框的 INSERT INTO SELECT
- llvm - LLVM - 如何将参数传递给函数调用| 错误:调用签名错误的函数