Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# [Résolu] Désactiver tous les contrôles d'un groupbox

Envoyé par : Sergio

Date : 05/12/2009 11:22

Bonjour à tous,

Ayant fait une recherche sur ce forum, j'ai trouvé cet ancien topic, mais dont la réponse n'est pas satisfaisante.

# Héritage de disabled=true
golgoth14
Date : 08 February 2006, 15:58

Comment fait-on pour que tous les éléments d'une box soient désactivés si l'on désactive la box.
Le but est de ne pas désactiver les éléments un à un mais que leur conteneur (la box) le fasse.

J'ai donc essayé ceci :

<groupbox id="id_gb">
  <caption label=" Ma groupbox "/>
  <hbox>
  <label control="id1" value="Controle 1"/>
  <textbox id="id1"/>
  <label control="id2" value="Controle 2"/>
  <textbox id="id2"/>
  <button label="Désactiver" oncommand="desactiver('id_gb');" />
  </hbox>
</groupbox>

avec:

function desactiver(id) {
  var children = document.getElementById(id).childNodes;
  for (var i = 0; i < children.length; i++) {
    children[i].setAttribute("disabled","true");
    }
  }

Après avoir cliqué sur le bouton les deux contrôles sont toujours actifs. Aucune erreur signalée...

J'ai essayé aussi la méthode setAttributeNode() mais je n'arrive pas à la faire fonctionner.

Merci à tous ceux qui aurait une piste.

# Re: Désactiver tous les contrôles d'un groupbox

Envoyé par : Lapinator

Date : 08/12/2009 14:32

et avec le code suivant ?

function desactiver(id) {
 var children = document.getElementById(id).childNodes;
 for (var i = 0; i < children.length; i++) {
   children[i].disabled=true;
   }
 }

Pour plus d'information voir : https://developer.mozilla.org/en/XUL/Textbox#p-disabled

# Re: Désactiver tous les contrôles d'un groupbox

Envoyé par : Sergio

Date : 08/12/2009 16:00

Merci pour votre réponse.

Votre proposition de code est tout aussi inefficace... On peut continuer de saisir dans chaque textbox

Effectivement le code donné sur : https://developer.mozilla.org/en/XUL%3aA(..) fonctionne tout à fait logiquement.

Dans mon cas, j'ai essayé à la place d'utiliser les codes suivants :

children[i].setAttribute("style","visibility:hidden;");

ou

children[i].setAttribute("hidden","true");

les deux fonctionnent correctement.

Je ne comprends pas ce qui cloche dans le cas que je cherche.

Si d'autres ont des pistes... Merci !

Cordialement.

# Re: Désactiver tous les contrôles d'un groupbox

Envoyé par : Sergio

Date : 08/12/2009 16:13

Bien sûr il a fallu que je poste pour trouver ce qui clochait !

Aussi je me réponds à moi-même.

C'est tout simplement le <hbox> </hbox> qui bloque :

<groupbox id="id_gb">
 <caption label=" Ma groupbox "/>
 
 <label control="id1" value="Controle 1"/>
 <textbox id="id1"/>
 <label control="id2" value="Controle 2"/>
 <textbox id="id2"/>
 <button label="Désactiver" oncommand="desactiver('id_gb');" />
 
</groupbox>

Bien sûr dans ce cas il désactive les 5 enfants qu'il trouve, ce qui est logique.

Il n'est plus possible de poster des messages dans ce forum.


Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.

Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™ sont des marques de la fondation Mozilla.