Сериализовать форму в json и сохранить в cookie - PullRequest
0 голосов
/ 28 марта 2011

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

сериализация в JSON:

function formToJSON(selector) {
    var form = {};
    $(selector).find(':input[name]:enabled').each(function () {
        var self = $(this);
        var name = self.attr('name');

        if (name.indexOf('TextBox', 0) == 0) {
            if (form[name]) {
                form[name] = form[name] + ',' + self.val();
            }
            else {
                form[name] = self.val();
            }
        }
    });

    return form;
}

затем при изменении формы я пытаюсь сохранить форму в cookie:

 $('#form1 :input').change(function () {

    var eba = formToJSON($('#form1'));

    $.cookie.set('fo', eba, {json:true});
    var a = $.cookie.get('fo',true);
    alert(a);


    //$.cookie.set('form123', { "ksf": "saf", "tt": "" }, { json: true });
    //var b = $.cookie.get('form123', true);
    //alert(JSON.stringify(b));
});

вотладчик - eba является объектом json, но alert (a) возвращает ноль.закомментированный код работает, этот json сериализован, и я получаю его из куки.но почему код не работает для формы ???плагин cookie взят с jquery.com

Ответы [ 2 ]

2 голосов
/ 28 марта 2011

Используйте эту библиотеку для строкового анализа / анализа JSON http://json.org/js.html

помните, что для файлов cookie существует ограничение в размере около 4 КБ, http://support.microsoft.com/kb/306070

0 голосов
/ 28 марта 2011

Файлы cookie браузера AFAIK не могут быть прочитаны с использованием javascript (за исключением вашего собственного домена), чтобы предотвратить Межсайтовый подлог в запросе Но вы все равно можете их установить.

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