From aec41a5c41df5a1b9a062950d90babdc0694b084 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Micha=C5=82=20Go=C5=82=C4=99biowski?= Date: Thu, 4 Dec 2014 14:43:35 +0100 Subject: [PATCH] Attributes: Simplify the option val hook; backport a test from master The hook is still defined; not using it could cause issues in IE<11. Backport the test from the master branch. Also, IE10 no longer throws when value not set but it still doesn't trim the value. IE11 has all those issues fixed; support comments are updated. (cherry-picked from f6302b0b53d61dfe1adbfaf6612be5cbced5bbc1) Fixes gh-1902 Closes gh-1901 --- src/attributes/val.js | 9 +++------ test/unit/attributes.js | 5 +++++ 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/attributes/val.js b/src/attributes/val.js index d9dd836cb..6adf8e2d2 100644 --- a/src/attributes/val.js +++ b/src/attributes/val.js @@ -72,12 +72,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: { diff --git a/test/unit/attributes.js b/test/unit/attributes.js index 55bdfffbd..1e9c2fee2 100644 --- a/test/unit/attributes.js +++ b/test/unit/attributes.js @@ -1459,6 +1459,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( "" ).val( "2" ).val(), "2" ); +}); + test( "Insignificant white space returned for $(option).val() (#14858)", function() { expect ( 3 ); -- 2.39.5