Bonjour à tous,

une fois n'est pas coutume avec Jquery, j'ai un ptit problème.

J'ai une zone comportant quelques checkbox (correspondant à des filtres pour l'affichage de mes données à droite, dans un flexigrid).
Sur ces checkbox, j'utilise l'event click ($('input').click(...)) pour faire un traitement et recharger mes données dans le flexigrid sans recharger toute la page. Dans ce traitement je désactive (disabled = true) toutes les checkbox.

Donc lorsque je clique sur une des checkbox, elles se désactivent toutes (elles sont "disabled") et devraient normalement ne pas être cliquables. Mais ! Lorsqu'elles sont désactivées, et que je clic dessus, une fois qu'elle repassent en "enabled" la dernière sur laquelle j'ai cliqué (et qui était grisée) se coche ou décoche (selon son état précédent) et le traitement lié est lancé (et encore, pas tout le temps : parfois elle se coche juste).

J'ai bien tenté un clearqueue sur chaque checkbox ou encore un unbind du click quand je les réactive, mais rien n'y fait.

En vous remerciant

Edit : bon je vais tenter de mettre un bout de code

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
 
//Désactive toutes les checkbox
function disableFilters(){
      $("#search .search_content input").each(function(){
		$(this).attr('disabled', true);
      });
}
//Pour chaque checkbox
$("#search_state .search_content input").each(function(){
        //Si on clique dessus
	$(this).click(function(){
		disableFilters();
		var type = "";
                //On reparcourt toutes les chkbox pour construire ma liste de filtres
		$("#search_state .search_content input").each(function(){
			if($(this).is(':checked')){
				$(this).next().addClass("selected");
				if(type != ""){
					type += ",";
				}
				type += this.value;
			}else{
				$(this).next().removeClass("selected");
			}
			//Show or hide the unselect option
			if(type == ""){
				hideSearchUnSelectAll($(this).parent().prev().prev());
			}else{
				showSearchUnSelectAll($(this).parent().prev().prev());
			}
		});
                //On recharge les 2 flexigrids
		$("#tabAll").flexOptions({filterState: type != "", filtersStateValues: type}).flexReload();
		$("#tabStared").flexOptions({filterState: type != "", filtersStateValues: type}).flexReload();
	});
});