Fixed #1074 where .html() was incorrectly changing the selected value of an option.
authorDavid Serduke <davidserduke@gmail.com>
Sat, 17 Nov 2007 22:09:51 +0000 (22:09 +0000)
committerDavid Serduke <davidserduke@gmail.com>
Sat, 17 Nov 2007 22:09:51 +0000 (22:09 +0000)
src/core.js
test/unit/core.js

index d27dcb9..36d736c 100644 (file)
@@ -932,7 +932,7 @@ jQuery.extend({
                                var wrap =
                                        // option or optgroup
                                        !tags.indexOf("<opt") &&
-                                       [ 1, "<select>", "</select>" ] ||
+                                       [ 1, "<select multiple='multiple'>", "</select>" ] ||
                                        
                                        !tags.indexOf("<leg") &&
                                        [ 1, "<fieldset>", "</fieldset>" ] ||
index cf3a312..18f1bb5 100644 (file)
@@ -882,15 +882,19 @@ test("val(String)", function() {
 var scriptorder = 0;
 
 test("html(String)", function() {
-       expect(9);
+       expect(10);
        var div = $("div");
        div.html("<b>test</b>");
        var pass = true;
        for ( var i = 0; i < div.size(); i++ ) {
-         if ( div.get(i).childNodes.length == 0 ) pass = false;
+               if ( div.get(i).childNodes.length == 0 ) pass = false;
        }
        ok( pass, "Set HTML" );
 
+       $("#main").html("<select/>");
+       $("#main select").html("<option>O1</option><option selected='selected'>O2</option><option>O3</option>");
+       equals( $("#main select").val(), "O2", "Selected option correct" );
+
        stop();
 
        $("#main").html('<script type="text/javascript">ok( true, "$().html().evalScripts() Evals Scripts Twice in Firefox, see #975" );</script>');