Landing pull request [337](https://github.com/jquery/jquery/pull/337). Value of radio inputs resets when type is set after the value in all IEs. Fixes #8570 ([bug](http://bugs.jquery.com/ticket/8570)).
This commit is contained in:
parent
dbe966aa57
commit
3ac9eb7ce3
3 changed files with 20 additions and 3 deletions
|
@ -360,6 +360,15 @@ jQuery.extend({
|
|||
// We can't allow the type property to be changed (since it causes problems in IE)
|
||||
if ( rtype.test( elem.nodeName ) && elem.parentNode ) {
|
||||
jQuery.error( "type property can't be changed" );
|
||||
} else if ( !jQuery.support.radioValue && value === "radio" && jQuery.nodeName(elem, "input") ) {
|
||||
// Setting the type on a radio button after the value resets the value in IE6-9
|
||||
// Reset value to it's default in case type is set after value
|
||||
var val = elem.getAttribute("value");
|
||||
elem.setAttribute( "type", value );
|
||||
if ( val ) {
|
||||
elem.value = val;
|
||||
}
|
||||
return value;
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -432,7 +441,6 @@ if ( !jQuery.support.getSetAttribute ) {
|
|||
});
|
||||
|
||||
// Use this for any attribute on a form in IE6/7
|
||||
// And the name attribute
|
||||
formHook = jQuery.attrHooks.name = jQuery.attrHooks.value = jQuery.valHooks.button = {
|
||||
get: function( elem, name ) {
|
||||
if ( name === "value" && !jQuery.nodeName( elem, "button" ) ) {
|
||||
|
|
|
@ -115,6 +115,11 @@ jQuery.support = (function() {
|
|||
div.cloneNode( true ).fireEvent( "onclick" );
|
||||
}
|
||||
|
||||
input = document.createElement("input");
|
||||
input.value = "t";
|
||||
input.setAttribute("type", "radio");
|
||||
support.radioValue = input.value === "t";
|
||||
|
||||
div.innerHTML = "<input type='radio' name='radiotest' checked='checked'/>";
|
||||
|
||||
fragment = document.createDocumentFragment();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue