diff --git a/src/attributes/val.js b/src/attributes/val.js
index 6fc4a84bb..ca5fa0838 100644
--- a/src/attributes/val.js
+++ b/src/attributes/val.js
@@ -71,14 +71,6 @@ jQuery.fn.extend({
jQuery.extend({
valHooks: {
- option: {
- get: function( elem ) {
- // attributes.value is undefined in Blackberry 4.7 but
- // uses .value. See #6932
- var val = elem.attributes.value;
- return !val || val.specified ? elem.value : elem.text;
- }
- },
select: {
get: function( elem ) {
var value, option,
diff --git a/test/unit/attributes.js b/test/unit/attributes.js
index 548c6f318..7fc604470 100644
--- a/test/unit/attributes.js
+++ b/test/unit/attributes.js
@@ -1445,3 +1445,12 @@ test( "coords returns correct values in IE6/IE7, see #10828", function() {
area = map.html("").find("area");
equal( area.attr("coords"), "0,0,0,0", "did not retrieve coords correctly" );
});
+
+test( "should not throw at $(option).val() (#14686)", 1, function() {
+ try {
+ jQuery( "" ).val();
+ ok( true );
+ } catch ( _ ) {
+ ok( false );
+ }
+});