Преобразование данных формы в массив

.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"
  }
]

 

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *