从元素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添加
答
创建一个对象数组你的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/
什么这个话题http://stackoverflow.com/questions/11338774/serialize-form-data-to-json像这样http://jsfiddle.net/b33kvd3L/ 1 / – Robert 2014-10-01 14:57:36