mirror of
https://github.com/jquery/jquery.git
synced 2024-11-23 02:54:22 +00:00
Fix #12127. IE9/10 checks fall off the box on clone. Close gh-873.
This commit is contained in:
parent
fffd23285a
commit
569d064fc9
@ -129,3 +129,4 @@ David Benjamin <davidben@mit.edu>
|
||||
Uri Gilad <antishok@gmail.com>
|
||||
Chris Faulkner <thefaulkner@gmail.com>
|
||||
Elijah Manor <elijah.manor@gmail.com>
|
||||
Daniel Chatfield <chatfielddaniel@googlemail.com>
|
||||
|
@ -455,9 +455,7 @@ function cloneFixAttributes( src, dest ) {
|
||||
// IE6-8 fails to persist the checked state of a cloned checkbox
|
||||
// or radio button. Worse, IE6-7 fail to give the cloned element
|
||||
// a checked appearance if the defaultChecked value isn't also set
|
||||
if ( src.checked ) {
|
||||
dest.defaultChecked = dest.checked = src.checked;
|
||||
}
|
||||
dest.defaultChecked = dest.checked = src.checked;
|
||||
|
||||
// IE6-7 get confused and end up setting the value of a cloned
|
||||
// checkbox/radio button to an empty string instead of "on"
|
||||
|
@ -15,7 +15,7 @@ jQuery.support = (function() {
|
||||
|
||||
// Preliminary tests
|
||||
div.setAttribute( "className", "t" );
|
||||
div.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>";
|
||||
div.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox' checked='checked'/>";
|
||||
|
||||
all = div.getElementsByTagName("*");
|
||||
a = div.getElementsByTagName("a")[ 0 ];
|
||||
@ -96,8 +96,8 @@ jQuery.support = (function() {
|
||||
};
|
||||
|
||||
// Make sure checked status is properly cloned
|
||||
input.checked = true;
|
||||
support.noCloneChecked = input.cloneNode( true ).checked;
|
||||
input.checked = false;
|
||||
support.noCloneChecked = !input.cloneNode( true ).checked;
|
||||
|
||||
// Make sure that the options inside disabled selects aren't marked as disabled
|
||||
// (WebKit marks them as disabled)
|
||||
|
@ -1895,3 +1895,14 @@ test("html() - script exceptions bubble (#11743)", function() {
|
||||
ok( false, "error ignored" );
|
||||
}, "exception bubbled from remote script" );
|
||||
});
|
||||
|
||||
test("checked state is cloned with clone()", function(){
|
||||
expect(2);
|
||||
|
||||
var elem = jQuery.parseHTML('<input type="checkbox" checked="checked"/>')[0];
|
||||
elem.checked = false;
|
||||
equal( jQuery(elem).clone().attr('id','clone')[0].checked, false, 'Checked false state correctly cloned' );
|
||||
elem = jQuery.parseHTML('<input type="checkbox"/>')[0];
|
||||
elem.checked = true;
|
||||
equal( jQuery(elem).clone().attr('id','clone')[0].checked, true, 'Checked true state correctly cloned' );
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user