C'est à dire est de ne pas se soumettre; ajouter dynamiquement des éléments de formulaire, est-ce un IE bug?

J'ai écrit un peu de Javascript pour permettre l'édition d'une liste d'éléments dans un formulaire HTML, y compris l'ajout et la suppression d'éléments. Ai eu de travail dans Firefox. Lorsque l'essayer dans Internet Explorer, j'ai trouvé que l'ajout de points n'ont pas été soumis avec le formulaire.

Longue histoire courte... beaucoup de simplification, de débogage, de comprendre ce ligne est de déclenchement, c'est à dire ignorer le nouveau formulaire de saisie. Ainsi, le comportement problème est résolu.

Mais maintenant, je dois demander: Pourquoi? Est-ce un IE bug?

Voici le code simplifié:

<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>

De l'essayer, ne l'évidence: la charge dans internet explorer, cliquez sur Ajouter, cliquez sur envoyer, regardez ce qui se trouve dans la barre d'adresse. Si vous supprimez la dernière ligne add(), c'est à dire un coup d'arrêt rapports field3. Il fonctionne très bien de toute façon dans Firefox.

Des idées? Un esprit curieux veut savoir. (Et comment puis-je ajouter du texte si besoin, dans un portable de la mode, de sorte que IE est heureux?)

OriginalL'auteur Jeremy Frank | 2009-03-04