Jquery 为多个同名字段获取JSON格式的表单数据
您好,我正在构建一个表单表,其中的行有多个相同的名称。我想在使用插件的地方提交JSON格式的表单表。 链接- 使用Jquery 为多个同名字段获取JSON格式的表单数据,jquery,json,Jquery,Json,您好,我正在构建一个表单表,其中的行有多个相同的名称。我想在使用插件的地方提交JSON格式的表单表。 链接- 使用$(“#form”).serializeJSON()。这样我只得到JSON格式的最后一个字段。它正在替换所有同名字段,并已将其替换为最后一个字段 我希望以JSON格式显示所有字段。 例如- [ { "field1": "id1", "field2": "dsda", "field3": "dsda", }, {
$(“#form”).serializeJSON()代码>。这样我只得到JSON格式的最后一个字段。它正在替换所有同名字段,并已将其替换为最后一个字段
我希望以JSON格式显示所有字段。
例如-
[
{
"field1": "id1",
"field2": "dsda",
"field3": "dsda",
},
{
"field1": "id2",
"field2": "dsda",
"field3": "dsda",
},
{
"field1": "id3",
"field2": "dsda",
"field3": "dsda",
},
]
相反,我只得到-
[
{
"field1": "id3",
"field2": "dsda",
"field3": "dsda",
},
]
这是我的密码-
$(“#按钮”)。单击(函数(){
var jsonForm=$(“#form”).serializeJSON();
log(jsonForm);
});代码>
字段1
字段2
字段3
连载
一个表单中不能有两个或多个同名字段,相反,您需要通过在每个同名字段的名称末尾添加[]来告诉html它是一个数组,例如
<tr>
<td><input type="text" name="field1[]"></td>
<td><input type="text" name="field2[]"></td>
<td><input type="text" name="field3[]"></td>
</tr>
<tr>
<td><input type="text" name="field1[]"></td>
<td><input type="text" name="field2[]"></td>
<td><input type="text" name="field3[]"></td>
</tr>
这没有提供他想要的输出。这将是{field1:[“id1”,“id2”,“id3”],…}
好的,serializeJSON在jQuery中不是一个函数,所以他可能使用一些自定义函数,但是如果没有这个修复程序,他将无法序列化表单数据。使用这个serializeFormJSON函数和我提供的修复程序会给他带来他想要的类似结果。你的解决方案肯定对我和其他很多人都有帮助。我只是想澄清一个概念。在输入名称末尾添加[]不会改变HTML中的任何内容,它会像以前一样发送数据。它是服务器端,它将数据处理成一些有用的东西,比如数组。