Ajout de champ dynamiquement
Résolu
Umbriel08
Messages postés
65
Date d'inscription
Statut
Membre
Dernière intervention
-
Umbriel08 Messages postés 65 Date d'inscription Statut Membre Dernière intervention -
Umbriel08 Messages postés 65 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je suis en stage dans une entreprise, je développe une application intranet.
Dans cette appli, les agents de l'entreprise se connecte et peuvent remplir un formulaire qu'il remplisse.
Pour des raisons d'ergonomie, on m'a demandé de rajouter des champs dynamiquement en fonction de la volonté de l'agent. J'ai donc compris que cela ce faisait avec du javascript cependant, je n'en ai vu qu'une très petite partie et ne sais toujours pas comme cela fonctionne réelement. J'aurais donc besoin de vous pour m'aider à comprendre ce bout de code trouvé sur le net afin que je puisse l'adapter à mon application.
Merci pour votre aide.
Je suis en stage dans une entreprise, je développe une application intranet.
Dans cette appli, les agents de l'entreprise se connecte et peuvent remplir un formulaire qu'il remplisse.
Pour des raisons d'ergonomie, on m'a demandé de rajouter des champs dynamiquement en fonction de la volonté de l'agent. J'ai donc compris que cela ce faisait avec du javascript cependant, je n'en ai vu qu'une très petite partie et ne sais toujours pas comme cela fonctionne réelement. J'aurais donc besoin de vous pour m'aider à comprendre ce bout de code trouvé sur le net afin que je puisse l'adapter à mon application.
Merci pour votre aide.
<script type="text/javascript"> var c,c2, ch; // ajouter un champ avec son "name" propre; function plus(){ c=document.getElementById('cadre'); c2=c.getElementsByTagName('input'); ch=document.createElement('input'); ch.setAttribute('type','text'); ch.setAttribute('name','ch'+c2.length); c.appendChild(ch); document.getElementById('sup').style.display='inline'; } // supprimer le dernier champ; function moins(){ if(c2.length>0){c.removeChild(c2[c2.length-1])} if(c2.length==0){document.getElementById('sup').style.display='none'}; } </script>
6 réponses
Ce script utilise le DOM.
https://fr.wikipedia.org/wiki/Document_Object_Model
getElementById : récupérer une balise par son attribut "id"
getElementsByTagName : récupérer une liste de balises en fonction du nom de cette balise
document.createElement : créer une balise
appendChild : ajouter l'enfant à la fin du noeud
setAttribute : modifie la valeur d'un attribut
https://fr.wikipedia.org/wiki/Document_Object_Model
getElementById : récupérer une balise par son attribut "id"
getElementsByTagName : récupérer une liste de balises en fonction du nom de cette balise
document.createElement : créer une balise
appendChild : ajouter l'enfant à la fin du noeud
setAttribute : modifie la valeur d'un attribut
"appendChild : ajouter l'enfant à la fin du noeud"
Excuse moi l'expression -> "Lol".
Ca veut dire quoi s'te phrase ? Tu ajoutes un enfant au bout de quel noeud ?
(Je connais rien au javascript j'ai juste vu en fin d'année que c'était un langage exécuté coté client et qui jouait sur les évènements on a fait la déclaration de variable et 2 boucles mais on a pas vu pour la maltraitance des enfants :D )
Pourrais-tu me donner plus de précision sur cette ligne de code ?
Excuse moi l'expression -> "Lol".
Ca veut dire quoi s'te phrase ? Tu ajoutes un enfant au bout de quel noeud ?
(Je connais rien au javascript j'ai juste vu en fin d'année que c'était un langage exécuté coté client et qui jouait sur les évènements on a fait la déclaration de variable et 2 boucles mais on a pas vu pour la maltraitance des enfants :D )
Pourrais-tu me donner plus de précision sur cette ligne de code ?
On ajoute un noeud (une balise) à la fin du noeud qui appelle cette méthode.
Exemple :
Exemple :
article = document.createElement('div'); article.className = 'article'; titre = document.createElement('h3'); titre.innerHTML = 'Mon titre'; article.appendChild(titre);Donnera :
<div class="article"> <h3>Mon titre</h3> </div>
Donc, si j'ai bien compris, c'est cette instruction qui permet de mettre la balise dans le noeud. Est-ce exact ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question