Bonjour,
Ca fait plusieurs jours que je tourne en rond sans trouver de solution à mon problème.
J'ai un tableau en HTML créé au moment du chargement de la page, mais seulement pour une partie. Ensuite il est possible de lui ajouter des lignes dynamiquement.
Quand j'ajoute une ligne dynamiquement, il faut que je puisse affecter une fonction au double-clic de certaines des cases de cette ligne : chose que je n'arrive pas à faire![]()
Voilà un peu de code qui nous intéresse :
J'ai fais plusieurs tests sur les lignes en rouge, en mettant ou pas les setTimeout, en appelant la fonction directement (sans mettre le mot function devant, ...), j'ai aussi essayé d'utiliser des cases différentes pour onDblClick (on m'a dit qu'il n'y avait pas de majuscules, mais quand je ne les met pas, il y a une exception qui se produit) ...
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 function changeEtatCase(cellule) { element = cellule; //On récupère la cellule qui a été double-cliquée element.innerHTML = '<input type="text" id="saisie" onBlur="afficheSaisie(this.value,element);" />'; //Affichage d'un champ text pour la saisie setTimeout(function(){document.getElementById('saisie').focus();},1000); } function ajoutLigne(uneDesignation,unMontant,uneOperation,unTypeTaxe,unTypeElt,unIdentifiant,uneQte,unPUHT) { var newCell; var newRow; newRow = window.parent.opener.document.getElementById("tabFacture").insertRow((window.parent.opener.document.getElementById("montantHT").rowIndex)-1); var cell1 = newRow.insertCell(0); cell1.innerHTML = uneDesignation; var cell2 = newRow.insertCell(1); var cell3 = newRow.insertCell(2); cell3.onDblClick = setTimeout(function(){changeEtatCase(this);},100); var cell4 = newRow.insertCell(3); var cell5 = newRow.insertCell(4); var cell6 = newRow.insertCell(5); var cell7 = newRow.insertCell(6); }
Mais aucun des tests ne me donne de résultat !! Au final, quand je double-clique, il ne se passe jamais rien![]()
A noter que le premier setTimeout a été mis parce que sinon ça plantait parce que l'input était pas totalement créé !
Merci pour votre aide !
Partager