Bonjour tout le monde.
Je m'arrache les cheveux depuis 2 jours pour un truc surement tout bête, mais je cale.
Je veux rendre des radios inactifs ou actifs en fonction d'une condition.
J'ai essayé en javascript et JQuery, mais ça ne change rien.
Voici mon code.
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <div id="DivRadioSegPortes"> <div id="DivRadioSegPortesTitre"> <label id="lblRadioSegPortes" class="bold">Condition appliquée entre chaque segments ET / OU : </label> <radio name="SegPortes" id="RadioSegPorOU" traitement="true">Segments portes OU</radio> <radio name="SegPortes" id="RadioSegPorET" traitement="true">Segments portes ET</radio> </div> </div>
Cette partie fonctionne impec que ce soit en Javascript ou en JQuery
Code jquery : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 /* Segments portes ET ou OU*/ document.getElementById("RadioSegPorOU").checked = true; //document.getElementById("RadioSegPorET").setAttribute("disabled","disabled"); //document.getElementById("RadioSegPorOU").setAttribute("disabled","disabled"); $("#RadioSegPorOU").attr("disabled", "disabled"); $("#RadioSegPorET").attr("disabled", "disabled");
Mais là, ça ne fonctionne plus (j'ai essayé aussi en javascript et en jquery) :
Code jquery : 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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57 ... ... ... $(document).ready(function() { let lblToUpdate = document.getElementById("lblNbSegL2E"); lblToUpdate.innerHTML = "Sélection : " + seg.options.length + " segment"; if (seg.options.length != 1) { lblToUpdate.innerHTML = lblToUpdate.innerHTML + "s"; }; ConditionSegEtOu(seg.options.length); }); ... ... ... function ConditionSegEtOu(P_NbSeg) { console.log("P_NbSeg="+P_NbSeg); if (P_NbSeg >= 2) // => Il y a au moins 2 segments polarisés sélectionnés => Activation des radios radioSegPortET et radioSegPortOLU { console.log("1"); $("#RadioSegPorET").removeAttr("disabled"); $("#RadioSegPorOU").removeAttr("disabled"); } else { console.log("2"); $("#RadioSegPorET").attr("disabled","disabled"); $("#RadioSegPorOU").attr("disabled","disabled"); document.getElementById("RadioSegPorOU").checked = true; }; } La même fonction en javaascript function ConditionSegEtOu(P_NbSeg) { console.log("P_NbSeg="+P_NbSeg); if (P_NbSeg >= 2) // => Il y a au moins 2 segments polarisés sélectionnés => Activation des radios radioSegPortET et radioSegPortOLU { console.log("1"); document.getElementById("RadioSegPorET").disabled = false; document.getElementById("RadioSegPorOU").disabled = false; } else { console.log("2"); document.getElementById("RadioSegPorET").disabled = true; document.getElementById("RadioSegPorOU").disabled = true; document.getElementById("RadioSegPorOU").checked = true; }; }
Quand il y a plusieurs segments dans la liste, le console.log("1") s'affiche bien, mais les radios restent désespérément grisé.
Je ne vois pas du tout ce qui ne va pas...
Merci d'avance pour votre aide.
Partager