Koha/koha-tmpl/opac-tmpl/bootstrap/lib/jquery/plugins/jquery.deserialize.min.js
simith 793d243dfa Bug 13307: Fix jquery.deseriable.min.js
http://bugs.koha-community.org/show_bug.cgi?id=13307
Signed-off-by: Marc Veron <veron@veron.ch>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>

http://bugs.koha-community.org/show_bug.cgi?id=13364
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
2015-04-13 13:48:55 -03:00

8 lines
No EOL
2.4 KiB
JavaScript

/**
* @author Kyle Florence <kyle[dot]florence[at]gmail[dot]com>
* @website https://github.com/kflorence/jquery-deserialize/
* @version 1.2.1
*
* Dual licensed under the MIT and GPLv2 licenses.
*/
(function(jQuery,undefined){var push=Array.prototype.push,rcheck=/^(?:radio|checkbox)$/i,rplus=/\+/g,rselect=/^(?:option|select-multiple)$/i,rvalue=/^(?:button|select-one|color|date|datetime|datetime-local|email|hidden|month|number|password|range|reset|search|submit|tel|text|textarea|time|url|week)$/i;function getElements(elements){return elements.map(function(){return this.elements?jQuery.makeArray(this.elements):this;}).filter(":input:not(:disabled)").get();}function getElementsByName(elements){var current,elementsByName={};jQuery.each(elements,function(i,element){current=elementsByName[element.name];elementsByName[element.name]=current===undefined?element:(jQuery.isArray(current)?current.concat(element):[current,element]);});return elementsByName;}jQuery.fn.deserialize=function(data,options){var i,length,elements=getElements(this),normalized=[];if(!data||!elements.length){return this;}if(jQuery.isArray(data)){normalized=data;}else if(typeof data==="string"){var parts;data=data.split("&");for(i=0,length=data.length;i<length;i++){parts=data[i].split("=");push.call(normalized,{name:decodeURIComponent(parts[0]),value:decodeURIComponent(parts[1].replace(rplus,"%20"))});}}if(!(length=normalized.length)){return this;}var current,element,j,len,name,property,type,value,change=function(){},complete=function(){},names={};options=options||{};elements=getElementsByName(elements);if(jQuery.isFunction(options)){complete=options;}else{change=jQuery.isFunction(options.change)?options.change:change;complete=jQuery.isFunction(options.complete)?options.complete:complete;}for(i=0;i<length;i++){current=normalized[i];name=current.name;value=current.value;if(!(element=elements[name])){continue;}type=(len=element.length)?element[0]:element;type=(type.type||type.nodeName).toLowerCase();property=null;if(rvalue.test(type)){if(len){j=names[name];element=element[names[name]=(j==undefined)?0:++j];}if(element){change.call(element,(element.value=value));}}else if(rcheck.test(type)){property="checked";}else if(rselect.test(type)){property="selected";}if(property){if(!len){element=[element];len=1;}for(j=0;j<len;j++){current=element[j];if(current.value==value){change.call(current,(current[property]=true)&&value);}}}}complete.call(this);return this;};})(jQuery);