Функция jQuery serializeArray() выполняет именно то, что тебе нужно. Просто надо привести данные к нужному формату. Можно воспользоваться этой функцией:
$.fn.serializeObject = function() { var o = {}; var a = this.serializeArray(); $.each(a, function() { if (o[this.name] !== undefined) { if (!o[this.name].push) { o[this.name] = [o[this.name]]; } o[this.name].push(this.value || ''''); } else { o[this.name] = this.value || ''''; } }); return o; };
Следующий пример выводит в консоль результат сериализации формы: первый — просто функцией serializeArray(), а второй — нашей функцией. Чтобы увидеть эти объекты, необходимо включить консоль Firebug или другого отладчика.
jQuery(''#thebutton'').click(function(){ console.log(jQuery(''#theform'').serializeArray()); console.log(jQuery(''#theform'').serializeObject()); });