jQuery serializeArray() key value pairs

前端 未结 10 1851
無奈伤痛
無奈伤痛 2020-11-28 06:25

I\'m having a bit of trouble serializing a form

10条回答
  •  夕颜
    夕颜 (楼主)
    2020-11-28 06:44

    Here is some modernization of Hollister's code.

    (function($,undefined){
      '$:nomunge'; // Used by YUI compressor.
    
      $.fn.serializeObject = function(){
        var obj = {},
            names = {};
    
        $.each( this.serializeArray(), function(i,o){
          var n = o.name,
            v = o.value;
    
            if ( n.includes( '[]' ) ) {
              names.n = !names.n ? 1 : names.n+1;
              var indx = names.n - 1;
              n = n.replace( '[]', '[' + indx + ']' );
            }
    
            obj[n] = obj[n] === undefined ? v
              : $.isArray( obj[n] ) ? obj[n].concat( v )
              : [ obj[n], v ];
        });
    
        return obj;
      };
    
    })(jQuery);
    

    In case you need field names as myvar[] for checkboxes.

提交回复
热议问题