From: Richard Gibson Date: Sun, 16 Dec 2012 15:39:19 +0000 (-0500) Subject: let .attr(checked|selected, true) update the property X-Git-Tag: 1.9.0b1~5 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=06f46dad9307c17d4aad6add2d3a9b0b2d3b451a;p=jquery.git let .attr(checked|selected, true) update the property --- diff --git a/src/attributes.js b/src/attributes.js index bba4efe39..6da68ef11 100644 --- a/src/attributes.js +++ b/src/attributes.js @@ -489,7 +489,7 @@ boolHook = { // Use defaultChecked and defaultSelected for oldIE } else { - elem[ jQuery.camelCase( "default-" + name ) ] = true; + elem[ jQuery.camelCase( "default-" + name ) ] = elem[ name ] = true; } return name; diff --git a/test/unit/attributes.js b/test/unit/attributes.js index a4be43aa5..84f406d1f 100644 --- a/test/unit/attributes.js +++ b/test/unit/attributes.js @@ -247,7 +247,7 @@ test( "attr(Hash)", function() { }); test( "attr(String, Object)", function() { - expect( 67 ); + expect( 71 ); var div = jQuery("div").attr("foo", "bar"), i = 0, @@ -281,7 +281,14 @@ test( "attr(String, Object)", function() { equal( $input.attr("name"), "something", "Check element creation gets/sets the name attribute." ); equal( $input.attr("id"), "specified", "Check element creation gets/sets the id attribute." ); - // As of fixing #11115, we make no promises about the effect of .attr on boolean properties + // As of fixing #11115, we only guarantee boolean property update for checked and selected + $input = jQuery("").attr( "checked", true ); + equal( $input.prop("checked"), true, "Setting checked updates property (verified by .prop)" ); + equal( $input[0].checked, true, "Setting checked updates property (verified by native property)" ); + $input = jQuery("