我有包含更多(动态)换行段的表单,我正在尝试创建可以通过jquery ajax传递并存储在DB中的对象。
问题是如何创建多维对象?
这是我的代码
DB:
formID wrapSegmentID
pkt formID FK
hldy st
tt
rt
HTML:
<form name="uniqID>
<div name="ws" class="wrapSegment">
<input name="st">
<input name="tt">
<input name="rt">
</div>
<div name="ws" class="wrapSegment">
<input name="st">
<input name="tt">
<input name="rt">
</div>
<!--it can be more .wrapSegment divs-->
<!--it can be more .wrapSegment divs-->
<!--it can be more .wrapSegment divs-->
<label>
<input class="hldy" type="checkbox"> hldy
</label>
<label>
<input class="pkt" type="checkbox"> pkt
</label>
<a class="save">Save</a>
</form>
JS
$('.hero-unit').on('click','.save', function (){
var day = {
dayID : "id",
pkt: "pkt",
hldy: "hldy",
ws: $(".wrapSegment").each(function() {
var inputs = $(this).children(":input");
var wsObj = $.map(inputs, function(item, y) {
return {
key: item.name,
value: $(item).val()
};
});
return (wsObj);
})
};
console.log(day); //
return false;
});
我得到“ws:parent divs”
但是我希望像这样
Object { dayID="id", pkt=0, hldy=1, ws=[Object { Object { key="1",value="1"}, Object { key=2, value=2}, {Object { key="1",value="1"}, Object { key=2, value=2} ] }
也许是我试图提交表单错误的方式?
答案 0 :(得分:1)
$.each
将返回一个jQuery对象。你想做的是:
$('.hero-unit').on('click','.save', function (){
var wsObj = [];
$(".wrapSegment").each(function() {
var inputs = $(this).children(":input");
var inputArray = $.map(inputs, function(item, y) {
return {
key: item.name,
value: $(item).val()
};
});
wsObj.push(inputArray);
});
var day = {
dayID : "id",
pkt: "pkt",
hldy: "hldy",
ws: wsObj
};
console.log(day); //
return false;
});