aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/attributes/val.js12
-rw-r--r--test/unit/attributes.js5
2 files changed, 10 insertions, 7 deletions
diff --git a/src/attributes/val.js b/src/attributes/val.js
index f67afb156..c5e8c63f4 100644
--- a/src/attributes/val.js
+++ b/src/attributes/val.js
@@ -74,12 +74,9 @@ jQuery.extend({
valHooks: {
option: {
get: function( elem ) {
- var val = jQuery.find.attr( elem, "value" );
- return val != null ?
- val :
- // Support: IE10-11+
- // option.text throws exceptions (#14686, #14858)
- jQuery.trim( jQuery.text( elem ) );
+ // Support: IE<11
+ // option.value not trimmed (#14858)
+ return jQuery.trim( elem.value );
}
},
select: {
@@ -130,7 +127,8 @@ jQuery.extend({
while ( i-- ) {
option = options[ i ];
- if ( (option.selected = jQuery.inArray( option.value, values ) >= 0) ) {
+ if ( (option.selected =
+ jQuery.inArray( jQuery.valHooks.option.get( option ), values ) >= 0) ) {
optionSet = true;
}
}
diff --git a/test/unit/attributes.js b/test/unit/attributes.js
index 69be6abe0..c1f773718 100644
--- a/test/unit/attributes.js
+++ b/test/unit/attributes.js
@@ -1461,6 +1461,11 @@ test( "should not throw at $(option).val() (#14686)", 1, function() {
}
});
+test( "option value not trimmed when setting via parent select", function() {
+ expect( 1 );
+ equal( jQuery( "<select><option> 2</option></select>" ).val( "2" ).val(), "2" );
+});
+
test( "Insignificant white space returned for $(option).val() (#14858)", function() {
expect ( 3 );