Mercurial > nebulaweb3
diff default/node_modules/shoestring/src/dom/serialize.js @ 0:1d038bc9b3d2 default tip
Up:default
author | Liny <dev@neowd.com> |
---|---|
date | Sat, 31 May 2025 09:21:51 +0800 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/default/node_modules/shoestring/src/dom/serialize.js Sat May 31 09:21:51 2025 +0800 @@ -0,0 +1,54 @@ +//>>excludeStart("exclude", pragmas.exclude); +define([ "shoestring" ], function(){ +//>>excludeEnd("exclude"); + + shoestring.inputTypes = [ + "text", + "hidden", + "password", + "color", + "date", + "datetime", + // "datetime\-local" matched by datetime + "email", + "month", + "number", + "range", + "search", + "tel", + "time", + "url", + "week" + ]; + + shoestring.inputTypeTest = new RegExp( shoestring.inputTypes.join( "|" ) ); + + + /** + * Serialize child input element values into an object. + * + * @return shoestring + * @this shoestring + */ + shoestring.fn.serialize = function(){ + var data = {}; + + shoestring( "input, select", this ).each(function(){ + var type = this.type, name = this.name, value = this.value; + + if( shoestring.inputTypeTest.test( type ) || + ( type === "checkbox" || type === "radio" ) && + this.checked ){ + + data[ name ] = value; + } else if( this.nodeName === "SELECT" ){ + data[ name ] = this.options[ this.selectedIndex ].nodeValue; + } + }); + + return data; + }; + +//>>excludeStart("exclude", pragmas.exclude); +}); +//>>excludeEnd("exclude");