使用Jquery SerializeArray()获取JSON键值对
如何序列化表单 我想要什么使用Jquery SerializeArray()获取JSON键值对,jquery,forms,serialization,Jquery,Forms,Serialization,如何序列化表单 我想要什么 [{"itemId[0]":"143","quantity[0]":"0"}, {"itemId[1]":"142","quantity[1]":"0"}] 返回输出 [{"name":"itemId[0]","value":"143"},{"name":"quantity[0]","value":"0"}, {"name":"itemId[1]","value":"142"},{"name":"quantity[1]","value":"0"}] 我知道这个问题
[{"itemId[0]":"143","quantity[0]":"0"},
{"itemId[1]":"142","quantity[1]":"0"}]
返回输出
[{"name":"itemId[0]","value":"143"},{"name":"quantity[0]","value":"0"},
{"name":"itemId[1]","value":"142"},{"name":"quantity[1]","value":"0"}]
我知道这个问题很相似
,但我还是没能解决它
到目前为止我的代码
javascript
....
for (var i = 0; i < checkboxes.length; i++) {
var p1 = '<tr><td><input type="hidden" name="itemId[' + i + ']" value="' + cid + '" />';
var p2 = '</td><td><input type="number" name="quantity[' + i + ']" value="0"/>';
$('#tbody').append(p1 + p2 +'</td></tr>');
}
$('#getlist').click( function() {
var formData = JSON.stringify($("#sendform").serializeArray());
alert(formData);
}
在元素上循环并按如下方式构建阵列:
$function{
var序列化=[];
$tr.eachfunction{
var itemId=$this.find[name^='itemId'];
var quantity=$this.find[name^='quantity'];
序列化推送{
[itemId.attrname]:itemId.val,
[数量.attrname]:数量.val
}
};
console.logserialized;
}
<form action="" method="POST" id="sendform">
<table class="table table-md tabledata table-bordered" id="user_data">
<thead>
<tr>
<th>Item id</th>
<th>Quantity</th>
</tr>
</thead>
<tbody id="tbody">
....
<button class="btn btn-success" id="getlist">Submit</button>
</form>
var complex = $("#sendform").serialize(); // name1=value1&name2=value2
var json = toSimpleJson(complex); // {"name1":"value1", "name2":"value2"}
function toSimpleJson(serializedData) {
var ar1 = serializedData.split("&");
var json = "{";
for (var i = 0; i<ar1.length; i++) {
var ar2 = ar1[i].split("=");
json += i > 0 ? ", " : "";
json += "\"" + ar2[0] + "\" : ";
json += "\"" + (ar2.length < 2 ? "" : ar2[1]) + "\"";
}
json += "}";
return json;
}
{"itemName%5B0%5D":"143","quantity%5B0%5D":"0","itemName%5B1%5D":"142", "quantity%5B1%5D":"0","itemName%5B2%5D":"141","quantity%5B2%5D":"0"}