Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Make sure that selected works in Safari on options in optgroups. Fixe…

…s #5701.
  • Loading branch information...
commit 4729f4d44326fd302c63af8f3324b6c4bac54084 1 parent baff0b0
@jeresig jeresig authored
Showing with 15 additions and 4 deletions.
  1. +8 −3 src/attributes.js
  2. +7 −1 test/unit/attributes.js
View
11 src/attributes.js
@@ -261,12 +261,17 @@ jQuery.extend({
// Only do all the following if this is a node (faster for style)
if ( elem.nodeType === 1 ) {
// These attributes require special treatment
- var special = rspecialurl.test( name );
+ var special = rspecialurl.test( name ), parent = elem.parentNode;
// Safari mis-reports the default selected property of a hidden option
// Accessing the parent's selectedIndex property fixes it
- if ( name === "selected" && elem.parentNode ) {
- elem.parentNode.selectedIndex;
+ if ( name === "selected" && parent ) {
+ parent.selectedIndex;
+
+ // Make sure that it also works with optgroups, see #5701
+ if ( parent.parentNode ) {
+ parent.parentNode.selectedIndex;
+ }
}
// If applicable, access the attribute via the DOM 0 way
View
8 test/unit/attributes.js
@@ -4,7 +4,7 @@ var bareObj = function(value) { return value; };
var functionReturningObj = function(value) { return (function() { return value; }); };
test("attr(String)", function() {
- expect(27);
+ expect(28);
// This one sometimes fails randomly ?!
equals( jQuery('#text1').attr('value'), "Test", 'Check for value attribute' );
@@ -55,6 +55,12 @@ test("attr(String)", function() {
ok( $body.attr('foo') === undefined, 'Make sure the expando is preferred over the dom attribute, even if undefined' );
body.removeAttribute('foo'); // Cleanup
+
+ var select = document.createElement("select"), optgroup = document.createElement("optgroup"), option = document.createElement("option");
+ optgroup.appendChild( option );
+ select.appendChild( optgroup );
+
+ equals( jQuery(option).attr("selected"), true, "Make sure that a single option is selected, even when in an optgroup." );
});
if ( !isLocal ) {
Please sign in to comment.
Something went wrong with that request. Please try again.