【发布时间】:2016-12-29 18:32:01
【问题描述】:
我需要从form 获取值,将其格式化为 JSON 并通过 AJAX 发布。这是我想要实现的格式:
{
items: [
{ id: 7, name: 'Book', price: 5.7 },
{ id: 5, name: 'Pencil', price: 2.5 }
]
}
这是 HTML:
(function($){
var $form = $('form');
// serializeArray format is way off from what I need
var rawData = $form.serializeArray();
console.log(rawData)
})(jQuery);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<form>
<fieldset>
<h2>Product 1</h2>
<input type="hidden" name="items[0][id]" value="7">
<input type="text" name="items[0][name]" value="Book">
<input type="number" name="items[0][price]" value="5.7">
</fieldset>
<fieldset>
<h2>Product 2</h2>
<input type="hidden" name="items[1][id]" value="5">
<input type="text" name="items[1][name]" value="Pencil">
<input type="number" name="items[1][price]" value="2.5">
</fieldset>
</form>
我应该循环并使用正则表达式来解析name吗?还是有内置方式?
如果需要,我可以更改<form> 格式。
【问题讨论】:
-
不,我的意思是我想从输入中获取所有数据以形成该 JSON。我需要通过 Ajax 发布它。我将编辑问题以使其更清晰
-
序列化在这里不起作用,需要手动进行
标签: javascript jquery arrays json forms