Make sure setting boolean attributes to the same name sets the property to a boolean type

1.7/enhancement_8685
timmywil 2011-05-13 13:39:38 -04:00
parent 6f676e692d
commit bc82ff0ff9
2 changed files with 7 additions and 2 deletions

View File

@ -481,7 +481,7 @@ boolHook = {
propName = jQuery.propFix[ name ] || name;
if ( propName in elem ) {
// Only set the IDL specifically if it already exists on the element
elem[ propName ] = value;
elem[ propName ] = true;
}
elem.setAttribute( name, name.toLowerCase() );

View File

@ -150,7 +150,7 @@ test("attr(Hash)", function() {
});
test("attr(String, Object)", function() {
expect(66);
expect(69);
var div = jQuery("div").attr("foo", "bar"),
fail = false;
@ -199,6 +199,11 @@ test("attr(String, Object)", function() {
equals( jQuery("#check2").prop("checked"), false, "Set checked attribute" );
equals( jQuery("#check2").attr("checked"), undefined, "Set checked attribute" );
jQuery("#check2").attr("checked", "checked");
equal( document.getElementById("check2").checked, true, "Set checked attribute with 'checked'" );
equal( jQuery("#check2").prop("checked"), true, "Set checked attribute" );
equal( jQuery("#check2").attr("checked"), "checked", "Set checked attribute" );
jQuery("#text1").prop("readOnly", true);
equals( document.getElementById("text1").readOnly, true, "Set readonly attribute" );
equals( jQuery("#text1").prop("readOnly"), true, "Set readonly attribute" );