Javascript : champ introuvable apre innerHTML

david.pl -  
Zempachi Messages postés 7572 Statut Contributeur -
Bonjour,

Depuis ce matin je suis sur un problème que je vais tenter de vous expliquer.
Je travail sur un formulaire de saisie de produit.
Je souhaiterai que des lors que l'on saisi un produit, une ligne de plus se rajoute au tableau.
A l'affichage de la page, je fais ma fonction de creation d'une ligne pour en avoir juste une.
Le probleme que je rencontre est que lorsque je fais un innerHTML pour ajouter la ligne dans mon tableau html, les champs insérés sont inaccessibles depuis les fonctions javascript ecritent des le debut.

J'espère m'etre fait comprendre.

Je vous remercie de l'aide que vous pourrez m'apporter.

David
Configuration: Windows Vista
Internet Explorer 7.0

4 réponses

  1. Zempachi Messages postés 7572 Statut Contributeur 906
     
    Salut,
    il faudrait nous donner le code ou un exemple de code pour voir ou si situe le pb.
    0
  2. david.pl
     
    Bonsoir

    Effectivement excusez moi, je suis debutant sur ce forum.
    Voici un morceau de la fonction qui est lancé au debut

    function AjouterLigneTableauProduit()
    {
    var ligne, cellule;
    ligne = document.getElementById('tableau_produit').insertRow();//Insèrer une ligne dans le tableau

    cellule = ligne.insertCell();//Insèrer une cellule dans la ligne
    with (cellule)
    {
    innerHTML = '<input type="text" id="pro_ref"/>';//Insèrer le texte dans la cellule
    }
    }

    par la suite, j'essai d'acceder à mon champ en faisant

    alert(document.getElementById("pro_ref").id);

    A ce moment la, une erreur et le message me dit que l'objet est introuvable

    Merci beaucoup

    David
    0
  3. byakhlefncr Messages postés 260 Statut Membre 63
     
    Salut,
    J'ai testé ce code html est quand je clique sur le bouton 'Test' il affiche : id de l'élement à tester est pro_ref

    --------------------------------------------------------
    <html>
    ...
    <SCRIPT>
    function AjouterLigneTableauProduit()
    {
    var ligne, cellule;
    ligne = document.getElementById('tableau_produit').insertRow();//Insèrer une ligne dans le tableau

    cellule = ligne.insertCell();//Insèrer une cellule dans la ligne
    with (cellule)
    {
    innerHTML = '<input type="text" id="pro_ref"/>';//Insèrer le texte dans la cellule
    }
    }
    </SCRIPT>
    .....
    <body>
    .....
    <table id="tableau_produit">

    </table>
    ....
    <button onclick="alert('id de l\'élement à tester est ' + document.getElementById('pro_ref').id);">Test</button>
    .....
    </body>
    </html>
    --------------------------------------------------------

    Bonne chance
    0
  4. Zempachi Messages postés 7572 Statut Contributeur 906
     
    Re,
    et bien je vois que tu t'es bien débrouillé grâce à mon aide infinie et absolue! ^^

    EDIT: histoire de dire quelque chose, n'utilise le "with" que si tu as plusieurs fonctions utilisées pour l'objet concerné sinon ça n'a pas grand intérêt.
    0