我有这些:
<input class="orders" name="orders[]" value="1">
<input class="orders" name="orders[]" value="2">
<input class="orders" name="orders[]" value="3">
我尝试在JQUERY中将orders
的值添加到serializeArray
。
我这样做:
var datastring = $("#form1").serializeArray();
var orders = [];
$('input.orders').each(function() {
orders.push($(this).val());
});
datastring.push({name: "orders", value: orders});
在服务器端,(当我将其转换为json格式时)我想要["1","2","3"]
但现在我只得到一个字符串:1,2,3
我尝试将其更改为:
datastring.push({name: "orders[]", value: orders});
现在,当我将其转换为json字符串(在服务器端)时,我得到了这个:
["1,2,3"]
请告诉我我的错误?
答案 0 :(得分:2)
你想要的是一个具有相同名称的对象的数组
var datastring = $("#form1").serializeArray();
$('input.orders').each(function() {
datastring.push({name: this.name, value: this.value});
});
并确保使用正确的类,删除括号
<input class="orders" name="orders[]" value="1">
<input class="orders" name="orders[]" value="2">
<input class="orders" name="orders[]" value="3">
这会给你一个看起来像
的数组[
{
"name": "orders[]",
"value": "1"
},
{
"name": "orders[]",
"value": "2"
},
{
"name": "orders[]",
"value": "3"
}
]
jQuery会在提交时将该数组解析为字符串orders[]=1&orders[]=2&orders[]=3
,这就是大多数服务器端语言解析[]
作为表单组所期望的,每个元素的键和值。< / p>
答案 1 :(得分:0)
尝试加入数组:
参考示例摘录:
var datastring = [];
datastring.push({
name: "orders",
value: ['1', '2', '3'].join(',')
});
console.log(datastring[0]["value"])
&#13;