Disabled fields not picked up by serializeArray

jquery, serialization

Solution

Try this

var data = $('form').serializeAllArray();

And here is the small plugin that is used

(function ($) {
  $.fn.serializeAllArray = function () {
    var obj = {};

    $('input',this).each(function () { 
        obj[this.name] = $(this).val(); 
    });
    return $.param(obj);
  }
})(jQuery);

You can also try enabling all your element's just to serialize them and then disable them after serializing.

var myform = $('#form');
var disabled = myform.find(':input:disabled').removeAttr('disabled');
var serialized = myform.serializeArray();
disabled.attr('disabled','disabled');

Problem

(Question updated to reflect real issue) I just realized that `serializeArray` is not fetching content from disabled fields. A set of (street) address fields are populated by selecting an item from a `autosuggest` list. Once this is done, the fields are disabled. I could change this to `read only`, but I want the disabled look and feel without having to change CSS. Is there a way to have `serializeArray` grab data fro, the disabled fields? Solution Thanks to Mohammad, I created a small plugin that helps me solve my issue: (Fiddle) ``` var form_data = $('form').serializeAll(); (function ($) { $.fn.serializeAll = function () { var data = $(this).serializeArray(); $(':disabled[name]', this).each(function () { data.push({ name: this.name, value: $(this).val() }); }); return data; } })(jQuery); ```

Original source

Related problems