IE ist nicht die Vorlage Formular-Elemente dynamisch Hinzugefügt

Schrieb ich einige JavaScript zu erlauben, die Bearbeitung einer Liste von Elementen in einem HTML-Formular, einschließlich dem hinzufügen und entfernen von Elementen. Habe es funktioniert in Firefox. Wenn Sie versuchen, in Internet Explorer, fand ich, dass alle hinzugefügten Elemente wurden nicht mit dem Formular gesendet.

Lange Rede, kurzer Sinn... viel Vereinfachung, debugging herausgefunden, welche Zeile ist die Auslösung IE zu ignorieren, die neue Eingabe in ein Formular. Also ist das Verhalten problem ist gelöst.

Aber jetzt muss ich Fragen: Warum? Ist das ein IE bug?

Ist hier der vereinfachte code:

<html>
<head>
    <title>Test</title>
    <script type="text/javascript">
        function add() {
            div = document.getElementById("mylist");

            //*** Adding text here works perfectly fine. ***
            div.innerHTML += " ";

            e = document.createElement("input");
            e.setAttribute("type", "text");
            e.setAttribute("name", "field3");
            e.setAttribute("value", "--NEWVALUE--");
            div.appendChild(e);

            //*** Adding text here works perfectly fine in Firefox, but for
            //    Internet Explorer it causes field3 to not be submitted. ***
            //div.innerHTML += " ";
        }
    </script>
</head>
<body>
    <form action="" method="get">
        <div id="mylist">
            <input type="text" name="field1" value="value1" />
            <input type="text" name="field2" value="value2" />
        </div>
        <a href="javascript:" onclick="add()" />Add</a>
        <input type="submit" value="Submit" />
    </form>
</body>
</html>

Probieren Sie es aus, tun das offensichtliche: laden im IE, klicken Sie auf Hinzufügen, klicken Sie auf Senden, schauen Sie, was in der Adressleiste. Wenn Sie kommentieren Sie die Letzte Zeile in add(), IE wird plötzlich aufhören reporting field3. Es funktioniert gut, entweder, wie in Firefox.

Irgendwelche Ideen? Ein neugieriger Geist will es wissen. (Und wie sollte ich hinzufügen, text, wenn nötig, in eine tragbare Mode, also IE ist glücklich?)

InformationsquelleAutor Jeremy Frank | 2009-03-04
Schreibe einen Kommentar