Bonjour tout le monde !
J'ai un petit souci avec un code Javascript.
Voici une version largement épurée de ce code :
Lorsque je clique sur le lien :
- avec Firefox, aucun problème, le focus est bien mis sur le nouveau champ
- avec IE, pas de focus, mais une bien erreur : "document.forms.datacloture.elements.references[][...] a la valeur NULL ou n'est pas un objet
Après quelques tests, on dirait qu'IE n'apprécie pas trop l'élément créé dynamiquement. Pour s'en convaincre, on peut par exemple dupliquer le <TR> dans le code HTML, sans toucher à nbpieces : la première fois, le focus est bien mis, puis on retrouve l'erreur.
Quelqu'un aurait-il une idée pour contourner ce problème ?
Modifié par eldiablo (23 Nov 2006 - 10:01)
J'ai un petit souci avec un code Javascript.
Voici une version largement épurée de ce code :
<HTML>
<HEAD>
<SCRIPT>
var nbpieces = 1;
function add_piece()
{
//On cree une nouvelle ligne
TR = document.createElement("tr");
//On cree les nouvelles colonnes
TD1 = document.createElement("td"); IP1 = document.createElement("input");
IP1.setAttribute('name', 'reference[]'); IP1.setAttribute('size', '20');
TD1.appendChild (IP1);
// On assemble les cellules a la ligne
TR.appendChild(TD1);
// On assemble le corps du tableau au tableau
document.getElementById ('pieces').getElementsByTagName('tbody')[0].appendChild (TR);
document.forms['datacloture'].elements['reference[]'][nbpieces].focus();
nbpieces += 1;
}
</SCRIPT>
</HEAD>
<BODY>
<FORM name="datacloture">
<TABLE id="pieces" border="1">
<TBODY>
<TR>
<TD><INPUT name="reference[]"></TD>
</TR>
</TBODY>
</TABLE>
<A href="javascript:add_piece()">Ajouter une piece</A>
</FORM>
</BODY>
</HTML>
Lorsque je clique sur le lien :
- avec Firefox, aucun problème, le focus est bien mis sur le nouveau champ
- avec IE, pas de focus, mais une bien erreur : "document.forms.datacloture.elements.references[][...] a la valeur NULL ou n'est pas un objet
Après quelques tests, on dirait qu'IE n'apprécie pas trop l'élément créé dynamiquement. Pour s'en convaincre, on peut par exemple dupliquer le <TR> dans le code HTML, sans toucher à nbpieces : la première fois, le focus est bien mis, puis on retrouve l'erreur.
Quelqu'un aurait-il une idée pour contourner ce problème ?

Modifié par eldiablo (23 Nov 2006 - 10:01)