[DOM]Conserver une valeur après ajout d'un child [Résolu]

malalam 10918 Messages postés lundi 24 février 2003Date d'inscription 2 mars 2010 Dernière intervention - 10 mars 2006 à 15:47 - Dernière réponse : malalam 10918 Messages postés lundi 24 février 2003Date d'inscription 2 mars 2010 Dernière intervention
- 10 mars 2006 à 17:13
Hello,

le titre n'est pas super clair parce que je ne savais pas comment résumer.

J'appelle une fonction sur un évènement (onchange d'un select : bref, quand on clique sur une de ses options, et il n'y a pas de submit du formulaire). Cette fonction fait ceci :
Elle ajoute dans un div A, une série d'élément : un autre div Bd[n], qui contient elle une image Bi[n], du texte, et un input type text Bt[n].
Sur l'image, un évènement onclick déclenche la suppression de sa div Bd[n]. (si on s'est planté, quoi).
On peut évidemment appeler autant de fois cette fonction, pour ajouter à ma div A, autant de div Bd[n] que l'on veut.
Le truc, c'est que si on fait apparaître 1 div Bd[n], et qu'on saisit quelque chose dans l'input correspondant Bt[n], puis que l'on resélectionne une autre option pour faire apparaître une nouvelle div Bd[n+1], la valeur de Bi|n] revient à sa valeur par défaut (0).
Je voudrais conserver cette valeur.
Je ne pige pas, vu que je ne fais qu'ajouter quelque chose au innerHTML de div A, je ne réécris pas tout (à priori).

Voici ma fonction :

function displayChoice (art_id, sk_id, sk_lib) {
div = document.getElementById('affChoixEmp['+art_id+']');
if (check = document.getElementById('empId['+art_id+']['+sk_id+']')) {
return false;
} else {
div.innerHTML += '
 '+sk_lib+' 
';
}
}

Quelqu'un a une solution?

Merci :-)
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
malalam 10918 Messages postés lundi 24 février 2003Date d'inscription 2 mars 2010 Dernière intervention - 10 mars 2006 à 17:13
3
Merci
Bon c'est fait.

Pour ceux que ça intéresse :

function displayChoice (art_id, sk_id, sk_lib) {
div = document.getElementById('affChoixEmp['+art_id+']');
if (check = document.getElementById('empId['+art_id+']['+sk_id+']')) {
return false;
} else {
emp = document.createElement ('div');
empId = div.appendChild (emp);
empId.id = 'empId['+art_id+']['+sk_id+']';


bt = document.createElement ('img');
bouton = empId.appendChild (bt);
bouton.src='img/pic.close.gif';
bouton.title='Supprimer';
bouton.alt='Supprimer';
bouton.style.cursor='pointer';
bouton.id='img['+art_id+']['+sk_id+']';
d = document.getElementById('img['+art_id+']['+sk_id+']');
d.onclick = function () {div.removeChild(document.getElementById('empId['+art_id+']['+sk_id+']'));};


lib = document.createTextNode (' '+sk_lib+' ');
empId.appendChild (lib);


inp = document.createElement ('input');
input = empId.appendChild (inp);
input.type='text';
input.name='sk_art_quantite['+art_id+']['+sk_id+']';
input.id='sk_art_quantite['+art_id+']['+sk_id+']';
valeur = document.getElementById('sk_art_quantite['+art_id+']['+sk_id+']');
valeur.value= '0';
}
}

Merci malalam 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 70 internautes ce mois-ci

Commenter la réponse de malalam
malalam 10918 Messages postés lundi 24 février 2003Date d'inscription 2 mars 2010 Dernière intervention - 10 mars 2006 à 16:17
0
Merci
Bon en fait j'ai compris, c'était stupide.
Pas encore résolu, mais j'ai compris... ;-)
La valeur de l'input a changé, pas le innerHTML de ma div, qui est une chaine...la chaine n'a pas été modifiée.
Va sans doute falloir passer complètement par DOM, ce qui va faire un code un peu plus long... :-(
Commenter la réponse de malalam

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.