2012-11-10 69 views
2

我有一個包含更多(動態)包裝段的表單,我試圖創建可以通過jquery ajax傳遞並存儲在數據庫中的對象。創建js對象循環輸入字段

問題是如何創建多維對象?

這是代碼,我有

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:父div的」

console log

,但我希望有像這樣

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} ] } 

也許就是這樣,我想提交表單錯了嗎?

回答

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;   
}); 
+0

nope,就像我越來越空物體 – InTry

+0

你確定嗎?這個小提琴適用於我:http://jsfiddle.net/mccannf/BxEdt/4/ – mccannf

+0

您已添加wsObj.push(inputArray);我必須測試它 – InTry