Преобразование данных формы в массив
.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" } ]