Skip to content

Instantly share code, notes, and snippets.

@danieliser
Created June 26, 2014 00:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save danieliser/f5ee39ec493dd43d0af6 to your computer and use it in GitHub Desktop.
Save danieliser/f5ee39ec493dd43d0af6 to your computer and use it in GitHub Desktop.
Converts all form elements into a serialized javascript array object. field[key][category][name] becomes field.key.category.name
function serialize_form($form){
var serialized = {};
jQuery("[name]", $form).each(function () {
var name = jQuery(this).attr('name');
var value = jQuery(this).val();
var nameBits = name.split('[');
var previousRef = serialized;
for(var i = 0, l = nameBits.length; i < l; i++) {
var nameBit = nameBits[i].replace(']', '');
if(!previousRef[nameBit]) {
previousRef[nameBit] = {};
}
if(i != nameBits.length - 1) {
previousRef = previousRef[nameBit];
} else if(i == nameBits.length - 1) {
previousRef[nameBit] = value;
}
}
});
return serialized;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment