Mercurial > nebulaweb3
diff default/node_modules/shoestring/src/dom/val.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/val.js Sat May 31 09:21:51 2025 +0800 @@ -0,0 +1,56 @@ +//>>excludeStart("exclude", pragmas.exclude); +define([ "shoestring" ], function(){ +//>>excludeEnd("exclude"); + + + /** + * Get the value of the first element or set the value of all elements in the current set. + * + * @param {string} value The value to set. + * @return shoestring + * @this shoestring + */ + shoestring.fn.val = function( value ){ + var el; + if( value !== undefined ){ + return this.each(function(){ + if( this.tagName === "SELECT" ){ + var optionSet, option, + options = this.options, + values = [], + i = options.length, + newIndex; + + values[0] = value; + while ( i-- ) { + option = options[ i ]; + if ( (option.selected = shoestring.inArray( option.value, values ) >= 0) ) { + optionSet = true; + newIndex = i; + } + } + // force browsers to behave consistently when non-matching value is set + if ( !optionSet ) { + this.selectedIndex = -1; + } else { + this.selectedIndex = newIndex; + } + } else { + this.value = value; + } + }); + } else { + el = this[0]; + + if( el.tagName === "SELECT" ){ + if( el.selectedIndex < 0 ){ return ""; } + return el.options[ el.selectedIndex ].value; + } else { + return el.value; + } + } + }; + +//>>excludeStart("exclude", pragmas.exclude); +}); +//>>excludeEnd("exclude");