Преобразование данных формы в массив
.serializeArray() — возвращает массив объектов, содержащий данные элементов формы, (подобно .serialize()), которые можно использовать в структуре JSON.
Метод имеет один вариант использования:
.serializeArray()
Метод .serializeArray() использует стандарты W3C для определения «подходящих» элементов. Для успешной сериализации элемент формы должен содержать атрибут name. Значения чекбоксов, радио кнопок будет включено в строку, если они были выделены.
Данные могут собираться с многих объектов jQuery, включая <input>, <textarea>, и <select>. Однако, намного удобнее собрать значения сразу со всей формы. Рассмотрим небольшой пример:
<form>
<div><input type="text" name="a" value="1" id="a"></div>
<div><input type="text" name="b" value="2" id="b"></div>
<div><input type="hidden" name="c" value="3" id="c"></div>
<div>
<textarea name="d" rows="8" cols="40">4</textarea>
</div>
<div><select name="e">
<option value="5" selected="selected">5</option>
<option value="6">6</option>
<option value="7">7</option>
</select></div>
<div>
<input type="checkbox" name="f" value="8" id="f">
</div>
<div>
<input type="submit" name="g" value="Submit" id="g">
</div>
</form>
Результатом выполнения скрипта:
$('form').submit(function() {
console.log($(this).serializeArray());
return false;
});
в консоли будет массив:
[
{
name: "a",
value: "1"
},
{
name: "b",
value: "2"
},
{
name: "c",
value: "3"
},
{
name: "d",
value: "4"
},
{
name: "e",
value: "5"
}
]