-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy pathform-to-obj.min.js
2 lines (2 loc) · 973 Bytes
/
form-to-obj.min.js
1
2
function formToObj(e){function t(e){for(var t=e.querySelectorAll("input, textarea, select, [contenteditable=true]"),r=[],n=0;n<t.length;++n){var u=t[n],a=u.name||u.getAttribute("data-name"),o=u.value;a&&("checkbox"!==u.type&&"radio"!==u.type||u.checked)&&("true"===u.getAttribute("contenteditable")&&(o=u.innerHTML),r.push({name:a,value:o}))}return r}function r(e,t,r){var u=t.split("."),a=u.length-1;u.reduce(function(e,t,u){return n(e,t,u===a?r:{})},e)}function n(e,t,r){if("[]"===t.slice(-2))u(e,t).push(r);else{if(e[t])return e[t];if("]"===t[t.length-1]){var n=u(e,t);if(n.prevName===t)return n[n.length-1];n.push(r),n.prevName=t}else e[t]=r}return r}function u(e,t){var r=t.replace(/\[\d*\]/,"");return e[r]||(e[r]=[])}var a=t(e);return a.sort(function(e,t){return e.name.localeCompare(t.name)}),a.reduce(function(e,t){return r(e,t.name,t.value),e},{})}"undefined"!=typeof module&&module.exports&&(module.exports=formToObj);
//# sourceMappingURL=form-to-obj.min.js.map