Bonjour,
Je ne suis pas trop utilisateur de javascript, mais j'en ai besoin pour pallier un manque du langage de développement que j'utilise...
Voici le code côté javascript...
Le problème se situe en ligne 32 (en rouge ci-dessus) car je n'arrive pas à "atteindre" BlocLienContact ...en chemin relatif car en fait ceci est un extrait de champs colonnes d'une grille où tout ceci est répété...autrement dit, ces blocs sont dupliqués et le comportement est à avoir sur chaque enregistrement (i.e. chaque ligne)
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59 <script type="text/javascript"> function DoInitStatut(aComposant, aValeurOrigine) { var obj = document.getElementById(aComposant.id) if (obj) { for (i=0; i < obj.length; i++) { if (obj.options[i].disabled == false) { if (obj.options[i].value == aValeurOrigine) { obj.options[i].style.color = 'black'; // obj.options[i].style.fontWeight = 'normal'; } else { obj.options[i].style.color = '#FF6A00'; // obj.options[i].style.fontWeight = 'bold'; } } } } } function DoRefreshOnChange(aComposant, aValeurOrigine) { var obj = document.getElementById(aComposant.id) if (obj) { var objetlien = obj.parentNode.parentNode; if (aComposant.value != aValeurOrigine) { obj.style.color = '#FF6A00'; if (objetlien) { objetlien.style.display = 'inline'; } } else { obj.style.color = 'black'; if (objetlien) { objetlien.style.display = 'none'; } } } } function DoResetStatut(aComposant, aValeurOrigine) { } </script>
Aevc la ligne, j'atteinds bien "BlocContact" qui est affiché dans mon alert, mais je voudrais atteindre "BlocLienContact" en dessous du bloc contact en question pour le cacher.
In fine, je veux afficher un bouton "undo" à côté de la liste déroulante (seulement si la valeur de liste est modifiée) et le cacher si la valeur est inchangée (ou redevient inchangée)...de même qu'actuellement je change la couleur du texte si la valeur de liste est changée ou pas.
Voici les objets du document...
Voici un aperçu visuel pour mieux comprendre la problématique qui n'est pas d'accéder "bêtement" à un DIV unique et connu :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <div id="BlocContact" > <div id="BlocListe" > <apex:selectList size="1" id="ContactMAJGrille" value="{!c.ContactMAJGrille}" onfocus="DoInitStatut(this, '{!c.AtlContact.StatutContact__c}')" onchange="DoRefreshOnChange(this, '{!c.AtlContact.StatutContact__c}')" > <apex:selectOptions value="{!StatutsContactGrille}"></apex:selectOptions> </apex:selectList> </div> <div id="BlocLienContact" style="display:none;"> <a id="Test" class="inlineEditUndoLink" title="Annuler" href="javascript:DoResetStatut(this, '{!c.AtlContact.StatutContact__c}')" > <img width="16px" height="16px" class="inlineEditUndo" alt="Annuler" src="/s.gif"></img> </a> </div> </div>
Quand je change de valeur dans une des listes déroulantes, je veux afficher un petit bouton undo en vis-à-vis comme pour les autres champs dans la capture.
Merci d'avance pour l'aide
Partager