ipshenicyn of delaweb
7/29/2017 - 11:29 AM

Сериализация формы. Использование: var data = $('form').unserialize();

Сериализация формы. Использование: var data = $('form').unserialize();

$.fn.unserialize = function(){
    return $.unserialize($(this).find(':input').serialize());
};
$.unserialize = function(serializedString){
    var str = decodeURI(serializedString.replace(/\+/g," "));
    var pairs = str.split('&');
    var obj = {}, p, idx, val;
    for (var i=0, n=pairs.length; i < n; i++) {
        p = pairs[i].split('=');
        idx = p[0];

        if (idx.indexOf("[]") == (idx.length - 2)) {
            var ind = idx.substring(0, idx.length-2);
            if (obj[ind] === undefined) {
                obj[ind] = [];
            }
            obj[ind].push(p[1]);
        }
        else {
            obj[idx] = p[1];
        }
    }
    return obj;
};