IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Désactivation de checkbox multiples.


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 10
    Points : 16
    Points
    16
    Par défaut Désactivation de checkbox multiples.
    Bonjour à tous,

    je suis entrain de développer une page avec struts dans laquelle j'ai deux listes de string (chaque liste est représentée par des checkbox multiples) et je réalise en javascript la possibilité de transfert entre ces deux listes (on sélectionne des éléments d'une liste, on clique sur un bouton et ces éléments passent sur l'autre liste).

    Ces deux listes sont triées par ordre alphabétique donc après un transfert, il faut retrier les listes. Commes ces listes peuvent être longues, le traitement peut prendre du temps. C'est pouquoi au début de mon transfert, je voudrais rendre les deux listes de checkbox disabled puis les rendre de nouveau enabled à la fin du traitement.
    Voici le code que j'utilise pour réaliser le transfert de la liste 'from' vers la liste 'to'.

    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
     
    function addOptionFromTo(from, to)
    {
      var listeFrom = document.getElementsByName(from)[0];
      var listeTo = document.getElementsByName(to)[0];
      listeTo.disabled=true;
      listeFrom.disabled=true;
      var x = 0;
      var aTrier;
     
      while (x < listeFrom.length ){
        var opt = listeFrom.options[x];
        if (opt.selected){
        	listeTo.options[listeTo.options.length] = new Option(opt.text, opt.value, 0, 0);
        	listeFrom.remove(x);
        	aTrier = true;
        }
        else
        	x++;
      }
      if (aTrier)
    	  sortSelectOptions(listeTo);
      else
    	  alert("Aucun enregistrement n'est sélectionné pour exécuter l'opération.");
     
      listeTo.disabled=false;
      listeFrom.disabled=false;
    }
    Cela ne fonctionne pas et je ne comprends pas pourquoi. En effet, lors d'un transfert, même si le traitement (le tri) est très long, on ne voit pas se désactiver les checkbox.
    Par contre, si au milieu du traitement, on affiche une 'alert', on peut voir les checkbox se désactiver.
    Donc je ne comprends pas pourquoi la désactivation ne marche pas si je "coupe" pas l'appli avec une alert.
    Est-ce que quelqu'un saurait me dire pourquoi ça ne fonctionne pas, où ai-je fait une erreur ?

    Sinon, j'ai une deuxième petite question. Comme je l'ai dit, mes listes peuvent être longues et il y a donc une scrollbar sur chaque liste. Si on passe les listes à disabled (dans le but qu'on ne puisse pas modifier la liste mais qu'on puisse quand même lire tous les éléments), la scrollbar reste sur firefox mais elle n'est plus utilisable sous IE. Ce comportement est-il modifiable sur IE ? Parce que ça empêche de consulter tous les éléments de la liste.

    Merci à tous de votre aide

  2. #2
    Membre émérite
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Points : 2 814
    Points
    2 814
    Par défaut
    essaie readonly!

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 10
    Points : 16
    Points
    16
    Par défaut
    js suis désolée, je viens de réaliser que je me suis complètement trompée en lisant ta réponse.

    Mes listes ne fonctionnent pas avec des checkbox multiples mais avec des select multiples. Du coup, il me semble bien que l'option readonly n'existe pas sur les select.

    Encore désolé

  4. #4
    Membre émérite
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Points : 2 814
    Points
    2 814
    Par défaut
    si tu déactives plutot le bouton!

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 10
    Points : 16
    Points
    16
    Par défaut
    Citation Envoyé par Matthieu2000 Voir le message
    si tu déactives plutot le bouton!
    Merci pour ton idée, malheureusement ca ne conviendrait pas .

    Il est également possible de faire un transfert en double cliquant sur un élément ou en faisant entrer après avoir sélectionné des éléments. Donc la désactivation des boutons ne suffirait pas.

    Merci quand même en tout cas

  6. #6
    Membre émérite
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Points : 2 814
    Points
    2 814
    Par défaut
    et un
    setTimeout
    ?

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 10
    Points : 16
    Points
    16
    Par défaut
    Citation Envoyé par Matthieu2000 Voir le message
    et un ?
    J'ai essayé de réaliser cela avec un setTimeout de 1ms. Effectivement, cela résout le problème puisque la désactivation est bien visible cette fois-ci même si c'est pas très beau dans le code de lancer un setTimeout pour bloquer l'appli pour que la désactivation se fasse.

    Je ne comprends donc toujours pas pourquoi le désactivation ne marche pas si on ne "bloque" pas l'application...

    Enfin bon, merci beaucoup pour ton aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Désactiver plusieurs checkbox lorsqu'on coche un checkbox
    Par pennylanesworld dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 05/12/2007, 22h21
  2. checkbox multiple dans un tableau
    Par yviii dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 21/06/2007, 16h40
  3. Désactiver une checkbox
    Par guidav dans le forum Langage
    Réponses: 3
    Dernier message: 14/05/2007, 10h01
  4. [AJAX] Checkbox multiple et AJAX
    Par Ouark dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 26/02/2007, 22h53
  5. Checkbox multiples
    Par amika dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 29/03/2006, 15h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo