Soucis javascript => Incrémentation dans une fonction

Signaler
Messages postés
2
Date d'inscription
jeudi 22 avril 2004
Statut
Membre
Dernière intervention
30 septembre 2005
-
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
-
J'utilise le code suivant :


<script>
function ajoutLigne() {
// Nouveau TD (colonne de gauche)
var newData1 = window.parent.document.createElement('td');
newData1.innerHTML = '<textarea rows="3" name="titre" cols="20" class="textarea_pl"></textarea>';
newData1.align="center";
var newData2 = window.parent.document.createElement('td');
newData2.innerHTML = '<textarea rows="3" name="paragraphe" cols="20" class="textarea_pl"></textarea>';
newData2.align="center";
var newData3 = window.parent.document.createElement('td');
newData3.innerHTML = '<textarea rows="3" name="texte" cols="20" class="textarea_pl"></textarea>';
newData3.align="center";
var newData4 = window.parent.document.createElement('td');
newData4.innerHTML = '<textarea rows="3" name="histoire" cols="20" class="textarea_pl"></textarea>';
newData4.align="center";
var newData5 = window.parent.document.createElement('td');
newData5.innerHTML = '<textarea rows="3" name="date_debut" cols="20" class="textarea_pl"></textarea>';
newData5.align="center";
var newData6 = window.parent.document.createElement('td');
newData6.innerHTML = '<textarea rows="3" name="date_fin" cols="20" class="textarea_pl"></textarea>';
newData6.align="center";
var newData7 = window.parent.document.createElement('td');
newData7.innerHTML = '<textarea rows="3" name="lieu" cols="20" class="textarea_pl"></textarea>';
newData7.align="center";
var newData8 = window.parent.document.createElement('td');
newData8.innerHTML = '<textarea rows="3" name="nickname" cols="20" class="textarea_pl"></textarea>';
newData8.align="center";
// Nouveau TR
var newRow = window.parent.document.createElement('tr');
newRow.appendChild(newData1);
newRow.appendChild(newData2);
newRow.appendChild(newData3);
newRow.appendChild(newData4);
newRow.appendChild(newData5);
newRow.appendChild(newData6);
newRow.appendChild(newData7);
newRow.appendChild(newData8);


// Ajout du nouveau TR au tableau
document.getElementById("tableau").appendChild(newRow);
}
</script>



Petit soucis, je voudrais que le nom de mes textarea, une fois insérés grace à ce javascript, soient suivis d'un numéro (ainsi quand on insére le textarea "titre", on se retrouve, sur la page html, avec une ligne et un textarea qui aie le nom "titre1", et si on ajoute encore une autre ligne, on aura "titre2", etc ...)


Une idée ?


J'ai tenté :

<script>
var n=3;
function ajoutLigne() {
n++;
// Nouveau TD (colonne de gauche)
var newData1 = window.parent.document.createElement('td');
newData1.innerHTML = '<textarea rows="3" name="POUET '+n+' " cols ="20" class= "textarea_pl"></textarea>';
newData1.align="center";
var newData2 = window.parent.document.createElement('td');
newData2.innerHTML = '<textarea rows="3" name="CHAMP '+n+' " cols ="20" class="textarea_pl"></textarea>';
newData2.align="center";
[...]
// Nouveau TR
var newRow = window.parent.document.createElement('tr');
newRow.appendChild(newData1);
newRow.appendChild(newData2);
newRow.appendChild(newData3);
newRow.appendChild(newData4);
newRow.appendChild(newData5);
newRow.appendChild(newData6);
newRow.appendChild(newData7);
newRow.appendChild(newData8);


// Ajout du nouveau TR au tableau
document.getElementById("tableau").appendChild(newRow);
}
</script>


Mais ça ne fonctionne pas !!


Aidez moi !

1 réponse

Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
Bonjour,
si on fait :
newData1.innerHTML = '<textarea rows="3" name="titre" cols="20" class="textarea_pl"></textarea>';
on aura donc plusieurs "titre" et on peut y accéder
avec titre[indice]
sinon faire :
varglobale++;
newData1.innerHTML = '<textarea rows="3" name="titre'+varglobale+'" cols="20" class="textarea_pl"></textarea>';
var varglobale=-1; étant définie hors d'une function et "avant".
Cordialement. Bul. 