[轉][jQuery]serializeObject 擴展

轉自:https://www.cnblogs.com/jwlfpzj/p/7997774.html
/*
* .serializeObject (c) Dan Heberden
* danheberden.com
*
* Gives you a pretty object for your form elements
*/
(function ($) {
    $.fn.serializeObject = function () {
        if (!this.length) {
            return false;
        }

        var $el = this,
            data = {},
            lookup = data; //current reference of data

        $el.find(':input[type!="checkbox"][type!="radio"][type!="button"], input:checked').each(function () {
            // data[a][b] becomes [ data, a, b ]
            var named = this.name.replace(/([^]+)?\]/g, ',$1').split(','),
                cap = named.length - 1,
                i = 0;

            for (; i < cap; i++) {
                // move down the tree - create objects or array if necessary
                lookup = lookup[named[i]] = lookup[named[i]] ||
                    (named[i + 1] == "" ? [] : {});
            }

            // at the end, psuh or assign the value
            if (lookup.length != undefined) {
                lookup.push($(this).val());
            } else {
                lookup[named[cap]] = $(this).val();
            }

            // assign the reference back to root
            lookup = data;
        });

        return data;
    };
})(jQuery);

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章