Javascript serializare formular în obiect
Am un formular cu numele 'config[display][x]', 'config[display][y]', 'config[port]',..., sau pot crea un alt format. și vreau să-l serializ în obiect JS astfel
{config:
display : {x : 'value', y : 'value'},
port : 'value'
}
Cineva știe soluțiile existente pentru a face asta?
P.S. Pot serializa formularul cu .serializeArray() din jQuery, dar voi avea un array cu hash-uri simple {name: name, value: value}. Dar cum să creez un obiect?
Răspuns #1
Vezi biblioteca mea https://github.com/serbanghita/formToObject - există și o comparație cu soluțiile existente.
var myFormObj = formToObject('myFormId');
/*
console.log(myFormObj);
{
saveSettings: 'Save',
name: 'Serban',
race: 'orc',
settings: {
input: 'keyboard',
video: {
resolution: '1024x768',
vsync: 'on'
}
}
}
*/
Răspunsul #2
Am folosit .serializeObject() de la Ben Almans și a funcționat.
http://benalman.com/projects/jquery-misc-plugins/#serializeobject
Codul este mic și ușor:
$.fn.serializeObject = function(){
var obj = {};
$.each( this.serializeArray(), function(i,o){
var n = o.name,
v = o.value;
obj[n] = obj[n] === undefined ? v
: $.isArray( obj[n] ) ? obj[n].concat( v )
: [ obj[n], v ];
});
return obj;
};
