mirror of
https://github.com/jquery/jquery.git
synced 2024-11-23 02:54:22 +00:00
Handle unset value attributes consistently depending on property existence. Supplements #9328.
This commit is contained in:
parent
ba90af0dc5
commit
25118e22a2
@ -343,8 +343,8 @@ jQuery.extend({
|
|||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
} else if ( hooks && "get" in hooks && notxml ) {
|
} else if ( hooks && "get" in hooks && notxml && (ret = hooks.get( elem, name )) !== null ) {
|
||||||
return hooks.get( elem, name );
|
return ret;
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
@ -495,12 +495,13 @@ boolHook = {
|
|||||||
// Use the formHook for button elements in IE6/7 (#1954)
|
// Use the formHook for button elements in IE6/7 (#1954)
|
||||||
jQuery.attrHooks.value = {
|
jQuery.attrHooks.value = {
|
||||||
get: function( elem, name ) {
|
get: function( elem, name ) {
|
||||||
|
var ret;
|
||||||
if ( formHook && jQuery.nodeName( elem, "button" ) ) {
|
if ( formHook && jQuery.nodeName( elem, "button" ) ) {
|
||||||
return formHook.get( elem, name );
|
return formHook.get( elem, name );
|
||||||
}
|
}
|
||||||
return name in elem ?
|
return name in elem ?
|
||||||
elem.value :
|
elem.value :
|
||||||
elem.getAttribute( name );
|
null;
|
||||||
},
|
},
|
||||||
set: function( elem, value, name ) {
|
set: function( elem, value, name ) {
|
||||||
if ( formHook && jQuery.nodeName( elem, "button" ) ) {
|
if ( formHook && jQuery.nodeName( elem, "button" ) ) {
|
||||||
|
@ -40,7 +40,7 @@ test("jQuery.attrFix/jQuery.propFix integrity test", function() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
test("attr(String)", function() {
|
test("attr(String)", function() {
|
||||||
expect(43);
|
expect(45);
|
||||||
|
|
||||||
equals( jQuery("#text1").attr("type"), "text", "Check for type attribute" );
|
equals( jQuery("#text1").attr("type"), "text", "Check for type attribute" );
|
||||||
equals( jQuery("#radio1").attr("type"), "radio", "Check for type attribute" );
|
equals( jQuery("#radio1").attr("type"), "radio", "Check for type attribute" );
|
||||||
@ -126,6 +126,8 @@ test("attr(String)", function() {
|
|||||||
ok( jQuery("<div/>").attr("title") === undefined, "Make sure undefined is returned when no attribute is found." );
|
ok( jQuery("<div/>").attr("title") === undefined, "Make sure undefined is returned when no attribute is found." );
|
||||||
equal( jQuery("<div/>").attr("title", "something").attr("title"), "something", "Set the title attribute." );
|
equal( jQuery("<div/>").attr("title", "something").attr("title"), "something", "Set the title attribute." );
|
||||||
ok( jQuery().attr("doesntexist") === undefined, "Make sure undefined is returned when no element is there." );
|
ok( jQuery().attr("doesntexist") === undefined, "Make sure undefined is returned when no element is there." );
|
||||||
|
equal( jQuery("<div/>").attr("value"), undefined, "An unset value on a div returns undefined." );
|
||||||
|
equal( jQuery("<input/>").attr("value"), "", "An unset value on an input returns current value." );
|
||||||
});
|
});
|
||||||
|
|
||||||
if ( !isLocal ) {
|
if ( !isLocal ) {
|
||||||
|
Loading…
Reference in New Issue
Block a user