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 :

Clonage ligne de tableau


Sujet :

JavaScript

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 36
    Par défaut Clonage ligne de tableau
    Bonjour,

    Je souhaite cloner une ligne de tableau et l'insérer à la fin de ce dernier. Pour ce faire j'insère une ligne de tableau caché qui sera toujours présente (car l'utilisateur peut également supprimer une ligne).

    Cette fonction javascript fonctionne correctement sous IE. En revanche sous firefox il m'insère la ligne dans un "td" et de ce fait crée un problème d'affichage du tableau (les lignes ajoutés sont compressées par rapport à la première ligne initialement présente)

    Voyez vous d'ou peut venir l'erreur ??

    voici mon javascript:
    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
    var counter = 0;
    function AjoutModalite() {
    	counter++;
    	var newFields = document.getElementById('readroot').cloneNode(true);
    	newFields.id = '';
    	newFields.style.display = 'block';
    	var newField = newFields.childNodes;
    	for (var i=0;i<newField.length;i++) {
    		var theName = newField.name;
    		if (theName){
    			newField[i].name = theName + counter;
    		}
    	}
    	var insertHere = document.getElementById('writeroot');
    	insertHere.parentNode.insertBefore(newFields,insertHere);
    }
    le html:
    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
     
    		<table id="modaliteTable">
    			<tr>
    				<td></td>
    				<td class="formulaireLink">
    					<a onClick="AjoutModalite()" href="#">
    						<%=UIFonctionnalite.getLabel("moAjouter", idComponent)%>
    					</a>
    				</td>
    				<td></td>
    			</tr>
     
    			<tr>
    				<td class="modaliteLabel1"><%=UIFonctionnalite.getLabel(intituleField.getName(), idComponent)%></td>
    				<td class="modaliteLabel2"><%=UIFonctionnalite.getLabel(descriptionField.getName(), idComponent)%></td>
    				<td></td>
    			</tr>
     
    			<tr id="readroot" style="display: none">
    				<td class="modaliteComponent1">
    					<%uicomponent.renderChild(intituleField.getName());%>
    				</td>
    				<td class="modaliteComponent2">
    					<%uicomponent.renderChild(descriptionField.getName());%>
    				</td>
    				<td>
    					<a onclick="DeleteRowModalite(this)" href="#">
    						<div class="UICancelButton">&nbsp;</div>
    					</a>
    				</td>
    			</tr>
     
    			<tr>
    				<td class="modaliteComponent1">
    					<%uicomponent.renderChild(intituleField.getName());%>
    				</td>
    				<td class="modaliteComponent2">
    					<%uicomponent.renderChild(descriptionField.getName());%>
    				</td>
    				<td>
    					<a onclick="DeleteRowModalite(this)" href="#">
    						<div class="UICancelButton">&nbsp;</div>
    					</a>
    				</td>
    			</tr>
     
    			<tr id="writeroot">
    				<td></td>
    				<td></td>
    				<td></td>
    			</tr>
    		</table>
    MERCI

  2. #2
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 36
    Par défaut
    Merci mais je ne peut pas utiliser cette fonction.
    en effet mes composant (de type input) sont générés par java donc en utilisant cette fonction je perd la mise en forme (longueur de l'input). De plus si j'ajoute mon composent en prenant la mise en forme je perd en généricité...

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Par défaut
    non tu peux dans tous les cas appliqué le style a tes inputs , les class css etc

    +1 spaffy

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 36
    Par défaut
    ->le_chomeur : je sais que l'on peut appliquer le style mais le souci c'est que je paramètre mes composants en java donc si j'en modifie un cela m'oblige à modifier le style css appliqué (un peu lourd )

    ->SpaceFrog : merci mais en appliquant le nodeCleaner sur mon tableau cela ne fonctionne toujours pas !!!

  7. #7
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    sinon c'est pas inline-block pour un tr ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 36
    Par défaut
    inefficace non plus !!!

    une autre idée??

  9. #9
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Par défaut
    ha pti truc !!
    une cellule ne peut être vide ! met un espace insécable a l'intérieur : &nbsp;

    a tester ...
    sinon je ne vois pas pourquoi la copie du noeud serait déformé

  10. #10
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    sinon il y a un truc css pour affciher les cellules vide ... mais je ne me rappelle plus ce que c'est...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 36
    Par défaut
    j'avais déja testé mais dans le doute j'ai recommencé et ..... cela ne fonctionne toujours pas !!!
    Je continue mes recherches ..

  12. #12
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Par défaut
    la propriété css pour forcer l'affichage ou masquer tes cellules :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    style="empty-cells:show"
    à appliquer sur ton table /!\

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 36
    Par défaut
    toujours pas bon !!!
    je commence à avoir fait le tour et je ne vois vraiment pas comment résoudre le problème

  14. #14
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Par défaut
    peux tu me donner le coté html généré ?? ( pas la partie comprenant le code en java )

  15. #15
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    Donc tu appendes au mauvais endroit ...


    Fasi des tests pour voir ce que te retourne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var insertHere = document.getElementById('writeroot');
    et à mon avis ton souci vient de là
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  16. #16
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 36
    Par défaut
    voici le code html généré :

    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
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    <div class="formulaireForm">		
    		<table id="modaliteTable" style="empty-cells: show;">
    			<tbody>
    				<!--  ...  -->
     
    			<tr>
    				<td></td>
    				<td class="formulaireLink">
    					<a onclick="AjoutModalite()" href="#">
    						Ajouter une description
    					</a>
    				</td>
    				<td></td>
     
    			</tr>
     
    			<tr>
    				<td class="modaliteLabel1">Intitulé</td>
    				<td class="modaliteLabel2">Description</td>
    				<td></td>
    			</tr>
     
    			<tr id="readroot" style="display: none;">
    				<td class="modaliteComponent1">
     
    					<input name="moIntitule_0" id="moIntitule_0" class="modaliteTextInput">
    				</td>
    				<td class="modaliteComponent2">
    					<textarea name="moDescription_0" id="moDescription_0" rows="3" cols="60"></textarea>
    				</td>
    				<td>
    					<a onclick="DeleteRowModalite(this)" href="#">
    						<div class="UICancelButton">&nbsp;</div>
     
    					</a>
    				</td>
    			</tr>
     
    			 <!-- ligne généré au chargement de la page -->
    			<tr>
    				<td class="modaliteComponent1">
    					<input name="moIntitule_0" id="moIntitule_0" class="modaliteTextInput">
    				</td>
    				<td class="modaliteComponent2">
    					<textarea name="moDescription_0" id="moDescription_0" rows="3" cols="60"></textarea>
     
    				</td>
    				<td>
    					<a onclick="DeleteRowModalite(this)" href="#">
    						<div class="UICancelButton">&nbsp;</div>
    					</a>
    				</td>
    			</tr>
     
     
    			 <!-- ligne généré par la fonction javascript -->
    			<tr id="" style="display: block;">
    				<td class="modaliteComponent1">
     
    					<input name="moIntitule_0" id="moIntitule_0" class="modaliteTextInput">
    				</td>
    				<td class="modaliteComponent2">
    					<textarea name="moDescription_0" id="moDescription_0" rows="3" cols="60"></textarea>
    				</td>
    				<td>
    					<a onclick="DeleteRowModalite(this)" href="#">
    						<div class="UICancelButton">&nbsp;</div>
     
    					</a>
    				</td>
    			</tr><tr id="writeroot">
    				<td></td>
    				<td></td>
    				<td></td>
    			</tr>
    		</tbody></table>

  17. #17
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 36
    Par défaut
    pas d'autre idée?
    il me semble pourtant que le code html généré est correct..

Discussions similaires

  1. Ajouter 1 ligne à un tableau avec rowspan & colspan
    Par softflower dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 22/11/2006, 22h35
  2. xsl-fo : ligne de tableau specifique en fonction d'un test
    Par de LANFRANCHI dans le forum XSL/XSLT/XPATH
    Réponses: 9
    Dernier message: 12/05/2005, 08h24
  3. Ajouter une ligne à un tableau
    Par Oluha dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 16/02/2005, 15h20
  4. Lien sur une ligne de tableau
    Par Oluha dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 09/02/2005, 11h36
  5. Split et calcul de ligne du tableau
    Par La_picolle dans le forum ASP
    Réponses: 6
    Dernier message: 27/08/2003, 15h58

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