},
val: function( val ) {
- return val == undefined ?
- ( this.length ? this[0].value : null ) :
- this.attr( "value", val );
+ if ( val == undefined ) {
+ if ( this.length ) {
+ var elem = this[0];
+
+ // We need to handle select boxes special\r if ( jQuery.nodeName(elem, "select") ) {\r var index = elem.selectedIndex,
+ a = [],
+ options = elem.options,
+ one = elem.type == "select-one";
+
+ // Nothing was selected\r if ( index < 0 )
+ return null;\r
+
+ // Loop through all the selected options\r for ( var i = one ? index : 0, max = one ? index + 1 : options.length; i < max; i++ ) {
+ var option = options[i];\r if ( option.selected ) {\r // Get the specifc value for the option\r var val = jQuery.browser.msie && !option.attributes["value"].specified ? option.text : option.value;
+
+ // We don't need an array for one selects\r if ( one )
+ return val;
+
+ // Multi-Selects return an array\r a.push(val);\r }\r }
+ \r return a;
+
+ // Everything else, we just grab the value\r } else
+ return this[0].value.replace(/\r/g, "");
+ }
+ } else
+ return this.attr( "value", val );
},
html: function( val ) {