IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Recréer après avoir supprimer input avec removeChild


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 83
    Points : 60
    Points
    60
    Par défaut Recréer après avoir supprimer input avec removeChild
    Bonsoir à tous,

    ça fait qq heures que je galére vraiment avec removechild.
    je créer des input dynamiquement en fonction d'un select - fonction onchange - , ces input ont des attributs différents. pour cela pas de problèmes. ça marche pour le premier onchange, mais ensuite il ne tient plus compte des nouveaux attributs.
    j'ai fait une condition pour ecraser la valeur du select precedent.., enfin je sais pas si c'est la bonne méthode. mon script :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    var c=form5.Cours.options[form5.Cours.selectedIndex].id;
    if(typeof(texte)!='undefined' ){
    		texte= document.getElementById('c1');
    		texte.parentNode.removeChild(texte);}
     
     
    if(typeof(cible)!='undefined' ){
    		cible= document.getElementById('c2');
    		cible.parentNode.removeChild(cible);}
     
    texte=document.createTextNode(c);
    cible=document.createElement("INPUT");
    cible.setAttribute("title","text");
    cible.setAttribute("size","1");
    cible.setAttribute("value",c);
     
    document.getElementById('c1').parentNode.appendChild(cible);
    document.getElementById('c2').parentNode.appendChild(texte);
    merci à tous ceux qui pourront m'aider

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,
    Tes options ont d'id?
    if(typeof(texte)!='undefined'
    tu as déclaré où texte?
    Ce sont quoi les éléments avec les id c1 et c2?
    Montre nous ton code HTML.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    cible=document.createElement("input");
    cible.setAttribute("type","text");
    A+.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 83
    Points : 60
    Points
    60
    Par défaut
    Bonjour,

    merci d'essayer de me répondre, voici mon code html. je travaille sur un exemple.
    "texte" et "cible" sont crées dynamiquement et je voudrais qu'à chaque chgt du select, il recrée texte et cible en fonctions de ce qu'il se trouve dans les options du select;

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <form name="form5">
    <select name='Cours'  onChange="listo()">";
    <option id="1">manger</option>
    <option id="2">boire</option>
    <option id="3">dormir</option>
    </select>
    </form>
     
    <table><td id="c1"></td><tr><td id="c2"></td></table>

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 112
    Points
    44 112
    Par défaut
    peut être intéressant de voir ce POST

    Nota :
    Dernière modification par vermine ; Aujourd'hui à 01h40. Motif: Ajout de la balise [code] (bouton #) de l'éditeur

  5. #5
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Déjà ton code html sur la table est mal structuré. Tu as déclaré où la variable "texte"?
    if(typeof(texte)!='undefined' ){
    texte= document.getElementById('c1');

    texte.parentNode.removeChild(texte);}

  6. #6
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Déjà ton code html sur la table est mal structuré. Tu as déclaré où la variable "texte"?
    if(typeof(texte)!='undefined' ){
    texte= document.getElementById('c1');
    // ICI tu supprimes l'element c1
    texte.parentNode.removeChild(texte);}
    .......
    //donc ici tu faits reference a un element qui n'existe plus
    document.getElementById('c1').parentNode.appendChild(cible);
    A+.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 83
    Points : 60
    Points
    60
    Par défaut
    la variable "texte" est crée dynamiquement en fonction du select avec createTextNode.
    je sais vraiment plus
    c'est quoi la bonne méthode pour créer un input avec du texte et qui change en fonction du select.

    pour moi, je crée une première fois le input lorsque le select s'execute, et lorsque le select change, je détruit le input et texte créer précedemment ensuite je recrée des nouveaux en fonction du select

  8. #8
    Membre émérite
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Points : 2 411
    Points
    2 411
    Par défaut
    Salut,

    Essaie ceci...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Test</title>
    <script type="text/javascript">//<![CDATA[
    	function removeAll(id){
    		var elt=document.getElementById(id);
    		if(elt){
    			while(elt.hasChildNodes())elt.removeChild(elt.lastChild);
    		}
    	}
     
    	function listo(){
    		// Suppression des éléments présents
    		removeAll('c1'); // Input
    		removeAll('c2'); // Texte
     
    		// Option Sélectionnée
    		var v=document.getElementById('Cours').value;
     
    		//  Texte de l'option sélectionnée
    		var t=document.getElementById('o'+v).text;
     
    		// Ajoute le texte
    		var texte=document.createTextNode(t);
    		document.getElementById('c2').appendChild(texte);
     
    		// Ajoute la balise input
    		var cible=document.createElement('input');
    		cible.setAttribute('type','text');
    		cible.setAttribute('size','1');
    		cible.setAttribute('value',t);
    		document.getElementById('c1').appendChild(cible);
     
    		return false;
    	}
    //]]>
    </script>
    </head>
    <body>
    <form name="form5">
    	<p>
    		<select id="Cours" name="Cours" onchange="listo();">
    			<option id="o1" value="1">manger</option>
    			<option id="o2" value="2">boire</option>
    			<option id="o3" value="3">dormir</option>
    		</select>
    	</p>
    	<table>
    		<tr><td id="c1"></td></tr>
    		<tr><td id="c2"></td></tr>
    	</table>
    </form>
    </body>
    </html>

  9. #9
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 112
    Points
    44 112
    Par défaut
    Citation Envoyé par nou366
    c'est quoi la bonne méthode pour créer un input avec du texte et qui change en fonction du select.

    pour moi, je crée une première fois le input lorsque le select s'execute, et lorsque le select change, je détruit le input et texte créer précedemment ensuite je recrée des nouveaux en fonction du select
    peut être pas obligé de ce servir de la gomme à DOM
    - pourquoi ne pas créer la première fois puis remplacer les valeurs les fois suivantes.
    - pourquoi ne pas avoir une structure en display:none, que l'on passe en display:inline la première fois et ensuite idem ci dessus.

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 83
    Points : 60
    Points
    60
    Par défaut
    Nickel Eric2a

    ça marche. un tout grand merci à vous tous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [OL-2007] Apres avoir supprimer un dossier contenant une regule
    Par BARMAKI dans le forum Outlook
    Réponses: 3
    Dernier message: 27/02/2013, 13h14
  2. Suppression d'un tablespace APRÈS avoir supprimer le fichier dbf
    Par Tanebisse dans le forum Administration
    Réponses: 2
    Dernier message: 06/09/2012, 15h44
  3. Changer image d'un JPanel après avoir choisi avec JFileChooser
    Par bender86 dans le forum Général Java
    Réponses: 10
    Dernier message: 15/11/2011, 18h32
  4. Réponses: 0
    Dernier message: 28/07/2009, 09h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo