Les éléments de forme ajoutés dynamiquement ne sont PAS POSTÉS dans IE 9

J'ai un formulaire qui est utilisé pour faire un Test. L'utilisateur saisit une question et fournit le type de question et les options de réponse et enregistre la question. Ce qui a mal tourné, c'est que lorsque l'utilisateur écrit une option et cliquez sur un bouton pour ajouter aux options, le contenu de la zone de texte pour les options est ajouté au DOM pour montrer la réponse à la question. Tout cela fonctionnait bien jusqu'à ce que IE9 ne soit pas là.
Lorsque l'utilisateur clique sur le bouton Ajouter aux options, l'option est affichée dans le DOM, mais la valeur n'est pas affichée dans IE9.
La fonction qui ajoute l'option au DOM est

var tbl = document.getElementById('tbl'); var lastRow = tbl.rows.length; var iteration = lastRow; var row = tbl.insertRow(lastRow); arr[ind] = iteration; var cellLeft1 = row.insertCell(0); var cellLeft2 = row.insertCell(1); var cellLeft3 = row.insertCell(2); if(document.crt_question.test_ans_view[0].checked) { if(document.crt_question.test_ans_choice.value=="0") // MCQ with Single Answer (Radio Buttons) { var op_val=document.crt_question.test_answer.value; var words=op_val.split(""); op_val=''; for(i=0;i<words.length;i++) { op_val = op_val + words[i].replace('"',"'"); } cellLeft1.innerHTML = '<div id="button_div'+ind+'" class="dom_"><input type="radio" name="button_'+ind+'" id="button_'+ind+'" value="'+ind+'" ></div>'; cellLeft2.innerHTML = '|<input type="image" src="../../_images/view_del.gif" onclick="return removeRowFromTable('+ ind +')" />|'; var newOption = document.createElement("input"); newOption.name = "test_answer"+ind+""; newOption.type = "hidden"; newOption.value = op_val; var newOption2 = document.createElement("input"); newOption2.name = "view_option"+ind+""; newOption2.type = "text"; newOption2.value = op_val; cellLeft3.appendChild(newOption); cellLeft3.appendChild(newOption2); ind++; remove++; } } 

La table à laquelle les options sont ajoutées est

  <table id="tbl" border="0" style="padding-left:70px;"> <tr> <td align="left"></td> <td align="left" ></td> <td align="left"></td> </tr> </table> 

Dans la fonction supérieure, je n'obtiens pas la Valeur de l'une des valeurs cachées ou du champ TEXT TEXT-TEXTE lorsque le formulaire est SOUMIS. Cela fonctionne dans FF et IE8. Quelqu'un peut-il se pencher sur cette chose?

REMARQUE: Ce code s'exécute dans un fichier qui est inclus dans un IFRAME.

Cette question était entièrement due aux normes IE9. Dans la vue de compatibilité, l'erreur a été supprimée. Donc, si quelqu'un rencontre ce type de problème, il suffit d'ajouter la ligne suivante dans la partie principale de votre document: <meta http-equiv="X-UA-Compatible" content="IE=8" />

Il est possible que vous ayez un code HTML inapproprié. Par exemple, une possibilité un peu aléatoire qui a été un symptôme de ceci et a fonctionné pour moi: Essayez de changer votre <div> en <span> .

J'avais le même problème avec l'utilisation de innerHTML pour insérer des données HTML dans un div mais IE9 ne le reconnaissait pas. Même si j'essayais d'alerter la valeur du champ, il ne savait pas qu'il existait même s'il fonctionnait bien sur IE8, Chrome, etc. Mais j'ai changé <div> en <span> et voila, il a parfaitement compris.

Comme il s'est avéré, j'ai eu une syntaxe HTML inappropriée. Plus précisément, ma <form> était dans une <p> . Contrairement à tous les autres navigateurs, IE9 n'a pas pardonné ceci et a seulement compris mes éléments insérés quand ils étaient à l'intérieur de p > form > span au lieu d'une p > form > div . Bien sûr, la solution réelle était de corriger ma structure HTML. Alors IE9 a compris le <div> ainsi que le <span> .

Lorsque je testez votre code dans IE9, il inclut les champs dans les données POST.

Fiddle: http://jsfiddle.net/Guffa/AeBdd/

J'ai recréé le formulaire et les champs de ce dont les scripts ont besoin. Vous devriez vérifier s'il existe des différences pertinentes sur le formulaire et les champs que vous avez.

Notez que j'ai dû ajouter une propriété crt_question à l'objet du document, car le formulaire n'est pas automatiquement ajouté, avec cet identifiant ou ce nom. Est-ce que vous rendez votre page en mode Quirks? Cela pourrait causer des problèmes.

Je viens de rencontrer ce même problème. En seulement IE9, les éléments de saisie AJAX chargés dynamiquement ne publiaient pas sur les entrées créées. Les entrées créées afficheraient bien. Ce qui a fini par être le problème pour moi, c'était une étiquette de corps d'ouverture manquante.

Le même problème, le problème manquait de l'étiquette du corps sur le document.