/
sammy.form_2_json-0.7.4.min.js
5 lines (5 loc) · 1.77 KB
/
sammy.form_2_json-0.7.4.min.js
1
2
3
4
5
// -- Sammy.js -- /plugins/sammy.form_2_json.js
// http://sammyjs.org
// Version: 0.7.4
// Built: 2013-01-27 13:34:12 -0500
(function(e){typeof define=="function"&&define.amd?define(["jquery","sammy"],e):(window.Sammy=window.Sammy||{}).Form2JSON=e(window.jQuery,window.Sammy)})(function(e,t){return function(){function e(n){var r=[],i=n.firstChild;while(i){if(i.nodeName.match(/INPUT|SELECT|TEXTAREA/i)){var s=t(i);s!==null&&r.push({name:i.name,value:s})}else{var o=e(i);r=r.concat(o)}i=i.nextSibling}return r}function t(e){switch(e.nodeName){case"INPUT":case"TEXTAREA":switch(e.type.toLowerCase()){case"radio":case"checkbox":if(e.checked)return e.value;break;case"button":case"reset":case"submit":case"image":return"";default:return e.value}break;case"SELECT":return n(e);default:}return null}function n(e){var t=e.multiple;if(!t)return e.value;var n=[];for(var r=e.getElementsByTagName("option"),i=0,s=r.length;i<s;i++)r[i].selected&&n.push(r[i].value);return n}window.form2object=function(t,n,r){if(typeof r=="undefined"||r==null)r=!0;if(typeof n=="undefined"||n==null)n=".";t=typeof t=="string"?document.getElementById(t):t;var i=e(t),s={},o={};for(var u=0;u<i.length;u++){var a=i[u].value;if(r&&a==="")continue;var f=i[u].name,l=f.split(n),c=s,h="";for(var p=0;p<l.length;p++){var d=l[p],v="";if(d.indexOf("[]")>-1&&p==l.length-1)h=v=d.substr(0,d.indexOf("[")),c[v]||(c[v]=[]),c[v].push(a);else if(d.indexOf("[")>-1){v=d.substr(0,d.indexOf("["));var m=d.replace(/^[a-z]+\[|\]$/gi,"");h=h+v+m,o[h]||(o[h]={}),c[v]||(c[v]=[]),p==l.length-1?c[v].push(a):o[h][m]||(c[v].push({}),o[h][m]=c[v][c[v].length-1]),c=o[h][m]}else p<l.length-1?(c[d]||(c[d]={}),c=c[d]):c[d]=a}}return s},window.form2json=window.form2object}(),t.Form2JSON=function(e){e._parseFormParams=function(e){return form2object(e[0])}},t.Form2JSON});