Javascript 将表单序列化为json并存储在cookie中

Javascript 将表单序列化为json并存储在cookie中,javascript,jquery,json,serialization,cookies,Javascript,Jquery,Json,Serialization,Cookies,我想将表单存储在客户端,在cookie中使用json,然后将其反序列化为表单。 我在做什么: JSON的序列化: function formToJSON(selector) { var form = {}; $(selector).find(':input[name]:enabled').each(function () { var self = $(this); var name = self.attr('name'); if

我想将表单存储在客户端,在cookie中使用json,然后将其反序列化为表单。 我在做什么:

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对象,但警报(a)给出null。 注释代码工作,json序列化,我从cookies中获取。 但是为什么代码不适用于表单???
来自jquery.com的cookie插件

使用此库来字符串化/解析JSON


请记住,Cookie有大约4KB的大小限制,不能使用javascript读取AFAIK浏览器Cookie(您自己的域除外),以防止
但是您仍然可以设置它们。

不明白我需要使用它做什么。对不起,我总是使用这个库在JSON和JavaScript对象之间序列化和反序列化。它比我在合理的时间内所能写的任何东西都更快、更健壮。至少这样,我知道我只需要担心存储费用。我在HTML5本地存储中使用了它,没有任何问题。您仍然需要从表单中提取元素并将其放入对象中进行存储。cookie实际上只存储字符串,您是否已通过cookie插件代码查看存储的内容?我立即看到两个问题:第一个选择器在开始时不应该有“:”,并且您也可以跳过
[name]
位。其次,当您调用
formToJSON
时,您只需传递一个字符串,尽管后一个字符串不会引起问题(它只是效率低下)。@wildcard:my bad,我忘了提到这个事实:)。