【问题标题】:create js object looping through input fields通过输入字段创建循环的js对象
【发布时间】:2012-10-30 20:13:33
【问题描述】:

我的表单包含更多(动态)包装段,我正在尝试创建可以通过 jquery ajax 传递并存储在 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”

但我希望这样

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

也许是我尝试提交表单的方式错误?

【问题讨论】:

    标签: javascript jquery object multidimensional-array


    【解决方案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;          
    });
    

    【讨论】:

    • 你已经添加了 wsObj.push(inputArray);我必须测试它
    猜你喜欢
    • 2012-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-27
    • 2013-09-04
    • 2016-11-08
    • 1970-01-01
    相关资源
    最近更新 更多