From 5195335cf4df62c06488807ae857f64c2d549253 Mon Sep 17 00:00:00 2001 From: timmywil Date: Wed, 4 May 2011 15:53:00 -0400 Subject: Set the property corresponding to a boolean attribute when setting to true. Fixes #9103. - Once boolean properties had been modified natively, setting the attribute no longer set the current value --- src/attributes.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/attributes.js b/src/attributes.js index 97638632c..991c2a204 100644 --- a/src/attributes.js +++ b/src/attributes.js @@ -301,7 +301,7 @@ jQuery.extend({ return jQuery( elem )[ name ]( value ); } - var ret, hooks, + var ret, hooks, boolProp, notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); // Normalize the name if needed @@ -326,7 +326,12 @@ jQuery.extend({ } else { // Set boolean attributes to the same name + // Also set the DOM property if ( value === true && !rspecial.test( name ) ) { + boolProp = jQuery.propFix[ name ] || name; + if ( !rinvalidChar.test( boolProp ) && typeof elem[ boolProp ] === "boolean" ) { + elem[ boolProp ] = true; + } value = name.toLowerCase(); } @@ -338,7 +343,6 @@ jQuery.extend({ return hooks.get( elem, name ); } else { - var boolProp; // Align boolean attributes with corresponding properties // Do not check the property if the name contains characters -- cgit v1.2.3