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

This commit is contained in:
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; propName = jQuery.propFix[ name ] || name;
if ( propName in elem ) { if ( propName in elem ) {
// Only set the IDL specifically if it already exists on the element // Only set the IDL specifically if it already exists on the element
elem[ propName ] = value; elem[ propName ] = true;
} }
elem.setAttribute( name, name.toLowerCase() ); elem.setAttribute( name, name.toLowerCase() );

View File

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