diff --git a/src/attributes/attr.js b/src/attributes/attr.js index cd34860e1..2773a383c 100644 --- a/src/attributes/attr.js +++ b/src/attributes/attr.js @@ -64,23 +64,7 @@ jQuery.extend( { return ret == null ? undefined : ret; }, - attrHooks: { - type: { - set: function( elem, value ) { - - // Support: IE <=11+ - // An input loses its value after becoming a radio - if ( isIE && value === "radio" && nodeName( elem, "input" ) ) { - var val = elem.value; - elem.setAttribute( "type", value ); - if ( val ) { - elem.value = val; - } - return value; - } - } - } - }, + attrHooks: {}, removeAttr: function( elem, value ) { var name, @@ -98,6 +82,23 @@ jQuery.extend( { } } ); +// Support: IE <=11+ +// An input loses its value after becoming a radio +if ( isIE ) { + jQuery.attrHooks.type = { + set: function( elem, value ) { + if ( value === "radio" && nodeName( elem, "input" ) ) { + var val = elem.value; + elem.setAttribute( "type", value ); + if ( val ) { + elem.value = val; + } + return value; + } + } + }; +} + jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( _i, name ) { jQuery.attrHooks[ name ] = { get: function( elem ) {