From 06f46dad9307c17d4aad6add2d3a9b0b2d3b451a Mon Sep 17 00:00:00 2001 From: Richard Gibson Date: Sun, 16 Dec 2012 10:39:19 -0500 Subject: [PATCH] let .attr(checked|selected, true) update the property --- src/attributes.js | 2 +- test/unit/attributes.js | 11 +++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) 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("