return jQuery( elem )[ name ]( value );
}
- var ret, hooks,
+ var ret, hooks, boolProp,
notxml = nType !== 1 || !jQuery.isXMLDoc( elem );
// Normalize the name if needed
} 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();
}
return hooks.get( elem, name );
} else {
- var boolProp;
// Align boolean attributes with corresponding properties
// Do not check the property if the name contains characters
equals( jQuery("#name").attr("name"), "something", "Set name attribute" );
jQuery("#name").attr("name", null);
equals( jQuery("#name").attr("name"), undefined, "Remove name attribute" );
- jQuery("#check2").attr("checked", true);
+
+ jQuery("#check2").prop("checked", true).prop("checked", false).attr("checked", true);
equals( document.getElementById("check2").checked, true, "Set checked attribute" );
equals( jQuery("#check2").prop("checked"), true, "Set checked attribute" );
equals( jQuery("#check2").attr("checked"), "checked", "Set checked attribute" );