Commit 155855b2 authored by Daniel Chatfield's avatar Daniel Chatfield Committed by Dave Methvin

Fix #12127, fer real. IE9/10 check state on clone. Close gh-875.

parent a475f1aa
...@@ -129,3 +129,4 @@ David Benjamin <davidben@mit.edu> ...@@ -129,3 +129,4 @@ David Benjamin <davidben@mit.edu>
Uri Gilad <antishok@gmail.com> Uri Gilad <antishok@gmail.com>
Chris Faulkner <thefaulkner@gmail.com> Chris Faulkner <thefaulkner@gmail.com>
Elijah Manor <elijah.manor@gmail.com> Elijah Manor <elijah.manor@gmail.com>
Daniel Chatfield <chatfielddaniel@googlemail.com>
...@@ -455,9 +455,8 @@ function cloneFixAttributes( src, dest ) { ...@@ -455,9 +455,8 @@ function cloneFixAttributes( src, dest ) {
// IE6-8 fails to persist the checked state of a cloned checkbox // IE6-8 fails to persist the checked state of a cloned checkbox
// or radio button. Worse, IE6-7 fail to give the cloned element // or radio button. Worse, IE6-7 fail to give the cloned element
// a checked appearance if the defaultChecked value isn't also set // 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 // IE6-7 get confused and end up setting the value of a cloned
// checkbox/radio button to an empty string instead of "on" // checkbox/radio button to an empty string instead of "on"
......
...@@ -1895,3 +1895,15 @@ test("html() - script exceptions bubble (#11743)", function() { ...@@ -1895,3 +1895,15 @@ test("html() - script exceptions bubble (#11743)", function() {
ok( false, "error ignored" ); ok( false, "error ignored" );
}, "exception bubbled from remote script" ); }, "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" );
});
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment