从元素Jquery获取JSON?

问题描述:

我有这个 HTML从元素Jquery获取JSON?

<select class="form-control" required name="article"> 
    <option value="Coca Cola">Coca Cola</option> 
</select> 
<input class="form-control number-input" value="" name="qty" type="text"> 


<select class="form-control" required name="article"> 
    <option value="Jupi">Jupi</option> 
</select> 
<input class="form-control number-input" value="" name="qty" type="text"> 


<select class="form-control" required name="article"> 
    <option value="Fanta">Fanta</option> 
</select> 
<input class="form-control number-input" value="" name="qty" type="text"> 

而且

JS

var invoiceNumber = 1; 

var articles = $('[name~=article]').map(function() { 
    return $(this).val() 
}).get(); 
var qty = $('[name~=qty]').map(function() { 
    return $(this).val() 
}).get(); 

什么,我需要的是让新的JSON看起来像这样

var invoicesGet = [{ 
    "invoice": "1", 
    "article": "Coca Cola", 
    "qty": "2042" 
}, { 
    "invoice": "1", 
    "article": "Jupi", 
    "qty": "232" 
}, { 
    "invoice": "1", 
    "article": "Fanta", 
    "qty": "45" 
}] 

这是工作拨弄我有什么现在: http://jsfiddle.net/b33kvd3L/

我想我得到了所有的元素值,订货会是这样,但我不知道怎么这一切JSON结合为一,并添加invoiceNumber? 我不知道有多少inouts将加入他们dinamicly添加

+0

什么这个话题http://stackoverflow.com/questions/11338774/serialize-form-data-to-json像这样http://jsfiddle.net/b33kvd3L/ 1 / – Robert 2014-10-01 14:57:36

创建一个对象数组你的JS后:

var invoicesGet = []; 
for (var i in articles) { 
    invoicesGet.push({ 
     invoice: invoiceNumber, 
     article: articles[i], 
     qty: qty[i] 
    }); 
} 

更新实时代码:http://jsfiddle.net/b33kvd3L/3/

产生输出,如:[{"invoice":1,"article":"Coca Cola","qty":"12"},{"invoice":1,"article":"Jupi","qty":"34"},{"invoice":1,"article":"Fanta","qty":"56"}]

使用.next()查找下一个qty输入并返回该对象,然后转换为JSON。

var articles = $('[name~=article]').map(function() { 
    var qtyVal = $(this).next("[name=qty]").val(); 
    return { 
     invoice: invoiceNumber, 
     article: $(this).val(), 
     qty: qtyVal 
    }; 
}).get(); 

的jsfiddle:http://jsfiddle.net/b33kvd3L/16/