Сериализация формы в и из JSON - PullRequest
2 голосов
/ 25 августа 2010

Я хочу сериализовать форму в json, обработать объект json, а затем повторно сериализовать его для отправки в скрипт php через ajax.

Вот пример того, что я хочу сделать:

s = $('.dia_req_form').serialize();
j = //convert s to json ...HOW??
if(j.name)
{
    alert("you must enter a name");
}
if(selectedID)
{
    j.id = selectedID;
}
s = //serialize j ...HOW??

Вы можете увидеть 2 части, которые говорят, КАК ??

Ответы [ 2 ]

2 голосов
/ 25 августа 2010

Вы можете использовать .serializeArray() и $.param() следующим образом:

//validate here
var obj = $('.dia_req_form').serializeArray();
if(selectedID) {
  obj.push({ name: 'id', value: selectedID });
}
var s = $.param(obj); //s can be used for submission

Внутренне, .serialize() действительноэквивалентно $.param($(this).serializeArray()), поэтому все, что мы делаем, это разбиваем шаги на части, добавляя элемент, если это необходимо.

.serializeArray() - это массив объектов с 2 свойствами (name и value), все, что мы делаем, это добавляем некоторый объект в массив, если необходимо, затем вызов $.param(), чтобы сделать его строкой.

0 голосов
/ 20 мая 2013

Вы можете использовать эту библиотеку, $.serializeObject - это вариант существующего метода $.serialize, который вместо кодирования элементов формы в строку преобразует элементы формы в допустимый объект JSON, который можно использовать в приложении JavaScript.

https://github.com/hongymagic/jQuery.serializeObject

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...