Skip to content

Instantly share code, notes, and snippets.

@bitsmanent
Last active October 11, 2016 19:05
Show Gist options
  • Save bitsmanent/887263eed95d56f45486 to your computer and use it in GitHub Desktop.
Save bitsmanent/887263eed95d56f45486 to your computer and use it in GitHub Desktop.
Returns a serializable object of the given elements. Requires deepset().
function collects(elems) {
var i, len, v, keys = null, ret = {};
len = elems ? elems.length : 0;
for(i = 0; i < len; ++i) {
if(!elems[i].name)
continue;
keys = elems[i].name.replace(/\[([^\]]*)\]/g, ",$1").split(',');
v = (elems[i].type == "checkbox" ? (elems[i].checked ? elems[i].value : "") : elems[i].value);
deepset(ret, keys, v);
}
if(!keys)
return null;
return ret;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment