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(); }); });
Partager