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 :

Suppression de lignes d'un select


Sujet :

JavaScript

  1. #1
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut Suppression de lignes d'un select
    Salut,

    J'ai un select multiple, et je voudrait supprimmer toutes les lignes selectionnées au clique d'un bouton (qui renvoit le fonction remove())

    Voila mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function remove() {
       for(i=0; i<document.getElementById("words").length; i++) {
          alert(document.getElementById("words").options[i].selected);
          if (document.getElementById("words").options[i].selected == true)
             document.getElementById("words").options[i] = null;        
       }
    }
    Quand j'en selectionne qu'une, ça va, mais si j'en prends 5 y'en a que 3 qui sont supprimées (enfin ça varie)...

    Ou est le problème?
    Merci

  2. #2
    Membre confirmé
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    430
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2006
    Messages : 430
    Points : 557
    Points
    557
    Par défaut
    Salut,

    ta fonction tourne dans le mauvais sens en fait.
    Là tu supprimes en incrémentant ta position dans la select, mais une fois que t'enlèves un élément, tes positions suivantes sont toutes modifiées.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    function remove() {
       for(i=document.getElementById("words").length-1; i > 0; i--) {
          alert(document.getElementById("words").options[i].selected);
          if (document.getElementById("words").options[i].selected == true)
             document.getElementById("words").options[i] = null;        
       }
    }
    Il faut que la fonction commence à traiter les éléments par la fin de la select.

  3. #3
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 651
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 651
    Points : 11 145
    Points
    11 145
    Par défaut
    bonjour,

    Simplement par curiosité et pour comprendre :
    Anduriel utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    document.getElementById("words").options[i] = null;
    pour supprimer une option de sa liste.

    Quelle différence avec ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
      var combo = document.getElementById("words");
      combo.remove(posSuppr);
    avec posSuppr la position de l'élément à supprimer (c'est une entier).

  4. #4
    Membre confirmé
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    430
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2006
    Messages : 430
    Points : 557
    Points
    557
    Par défaut
    je ne connaissais pas cette fonction "remove", et je viens de tester. Je dirais que les deux méthodes font exactement pareil, donc il ne doit y avoir aucune raison particulière au fait que Anduriel n'ait pas utilisé remove(). Peut-être ne connaissait-il pas non plus?

Discussions similaires

  1. [Excel - VBA] Problème de suppression de lignes...
    Par beholder2 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 28/01/2005, 17h27
  2. Suppression de lignes dans un fichier
    Par bubu dans le forum Linux
    Réponses: 2
    Dernier message: 13/01/2005, 10h36
  3. Dbgrid : Comment interdire Suppression de Ligne
    Par Francis dans le forum Bases de données
    Réponses: 3
    Dernier message: 28/11/2004, 08h31
  4. Réponses: 4
    Dernier message: 02/07/2004, 19h14
  5. [VB.NET] Suppression de ligne dans un DataTable
    Par seemax dans le forum Windows Forms
    Réponses: 7
    Dernier message: 06/05/2004, 14h19

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