Bonjour,

Je dois gérer une IHM Web qui après avoir cliqué sur un bouton avec un id spécifique affiche une fenêtre de sélection de cible (par le biais de CheckBox) avec Ajax.

Seulement je dois aussi prévoir une fonctionnalité qui permet de copier une sélection qui a été déjà passé. J'ai donc crée un bouton qui appelle exactement la même fonction qu'avant mais qui à la fin coche les checkbox qui sont apparu dans la fenêtre de sélection des cibles.

Voici le code : (tout tiens en une fonction, le fait de créer une sélection vierge ou à partir de l'existant se fait en fonction du deuxième argument de la fonction):

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
function apparaitreCreationCommande(idItem,idCommande) {
 
// On fait apparaître la fenêtre de création de commande, en chargeant les cibles correspondant au déploiement
var idDeploiement = $("#"+idItem).attr("name");
$("#div_creation").attr('src','');
var action = $("#form_listeCible").attr("action");
var dataString = "idDeploiement=" + idDeploiement;
$('#div_creation').html('<p><img src="img/ajax-loader.gif" width="220" height="19" /></p>');	
 
 // Requête Ajax pour obtenir les choix possibles dans la sélection			
$.ajax( {
	type : "POST",
	url : action,
	data : dataString,
	dataType : "html",
	success : function(data) {
	        $('#div_creation').html(data);
	},
	error : function() {}
});
 
$('#li_deploiement_'+idDeploiement).css("background","#DEFAFF");
document.getElementById('wrap').style.height="500px";
$(".boutonOuvrirCreation").attr('disabled', 'disabled');
$('#div_creation').slideToggle(); // La fenêtre de sélection a été chargé avec la requête Ajax, je l'affiche alors avec une fonction JQuery
 
	// Si une idCommande a été renseignée (idCommande != 0, avec le bouton "Copier Commande") on coche les
	// cases correspondant à la commande copiée
 
	if (idCommande != 0)
	{
		fonctionCocher(); // Contient des instructions du type : $("#toto[type='checkbox']").attr("checked","true");	
	}
	return false;
}
Le soucis arrive au moment où je veux cocher les cases (la fonction fonctionCocher), où rien ne se passe. En lançant les instructions qu'il y a dans fonctionCocher() par firebug les cases se cochent bien.

Je pense qu'il y a un soucis de synchro entre les instructions Javascript, car il me semble qu'après avoir lancé un traitement on appelle la suivante sans vraiment avoir la fin de la première...

Quelqu'un aurait-il une idée pour palier à ce problème? J'aimerai bien ne pas à avoir utiliser des fonctions d'attente comme delay, bien que je ne sois pas sûr que ça marcherait.

Merci d'avance !