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 :

N'efface qu'une option de liste deroulante sur trois


Sujet :

JavaScript

  1. #1
    Membre du Club Avatar de caro71ol
    Étudiant
    Inscrit en
    Janvier 2011
    Messages
    145
    Détails du profil
    Informations personnelles :
    Âge : 33

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2011
    Messages : 145
    Points : 61
    Points
    61
    Par défaut N'efface qu'une option de liste deroulante sur trois
    Quand on change de sélection, il n'y a qu'une liste qui se vide, les deux autres non.

    D'où cela peut-il provenir ?

    Code :
    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
    //pour vider liste
     
    			function videlistehd(){
    //Suppression de l'élément d'option
    	var selectListe = document.getElementById('heuredebut3');
    	var option = selectListe.getElementsByTagName("option");
    	var Length = option.length;
    	for (i=0;i<Length;i++) {
    		selectListe.removeChild(option[i]);
    		}
    					}
     
    						function videlistehf(){
    //Suppression de l'élément d'option
    	var selectListe2 = document.getElementById('heurefin3');
    	var option2 = selectListe.getElementsByTagName("option2");
    	var Length2 = option2.length;
    		for (j=0;j<Length2;j++) {
    		selectListe2.removeChild(option[j]);
    		}
    					}
     
    					function videlistebloc(){
    //Suppression de l'élément d'option
    	var selectListe3 = document.getElementById('blocage3');
    	var option3 = selectListe.getElementsByTagName("option3");
    	var Length3 = option3.length;
    		for (k=0;k<Length3;k++) {
    		selectListe3.removeChild(option[k]);
    		}
    					}
    ...
     
    function ajax_multi2(){
    goacti();
    gochoixhd();
    gochoixhf();
    videlistehd();
    videlistehf();
    videlistebloc();
    }

  2. #2
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 915
    Points
    79 915
    Par défaut
    Bonjour,

    A mon avis c'est à ce niveau-ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    getElementsByTagName("option2");
    Vous récupérer les éléments selon leur tag (<...>). Le tag <option2> n'existe pas. <option3> non plus, d'ailleurs.

  3. #3
    Membre du Club Avatar de caro71ol
    Étudiant
    Inscrit en
    Janvier 2011
    Messages
    145
    Détails du profil
    Informations personnelles :
    Âge : 33

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2011
    Messages : 145
    Points : 61
    Points
    61
    Par défaut
    En mettant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    getElementsByTagName("option");
    pour le 2 et le 3 j'ai toujours le meme resultat.

  4. #4
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 915
    Points
    79 915
    Par défaut
    Montrez-nous les parties de HTML concernées. Les selects et les options.

  5. #5
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 098
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 098
    Points : 44 675
    Points
    44 675
    Par défaut
    Bonjour,
    pas bien de recopier la même fonction pour plusieurs SELECT, autant en faire une générique, il y aura bien moins d'erreur dans la recopie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var selectListe2 = document.getElementById('heurefin3');
    var option2 = selectListe.getElementsByTagName("option2");
    il existe plusieurs façon de scratcher les OPTIONs d'un SELECT, en voici une
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function removeAllOptions( id){
      var oSelect = document.getElementById( id);
      if( oSelect){
        while( oSelect.options.length){
          oSelect.removeChild( oSelect.options[0]);
        }
      }
    }

  6. #6
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Pour vider un select, il suffit de mettre le length de options à 0.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function removeAllOptions( id){
      document.getElementById(id).options.length=0;
    }
    A+.

  7. #7
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    ou virer toujours la première ... tant qu'il y a des options ...

  8. #8
    Membre du Club Avatar de caro71ol
    Étudiant
    Inscrit en
    Janvier 2011
    Messages
    145
    Détails du profil
    Informations personnelles :
    Âge : 33

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2011
    Messages : 145
    Points : 61
    Points
    61
    Par défaut
    j'ai fait ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    			function videliste(){
    document.getElementById('heuredebut3').options.length=0;
    document.getElementById('heurefin3').options.length=0;
    document.getElementById('blocage3').options.length=0;
    }
    et cela fonctionne. merci à tous.

  9. #9
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 098
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 098
    Points : 44 675
    Points
    44 675
    Par défaut
    Citation Envoyé par caro71ol Voir le message
    j'ai fait ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function videliste(){
    document.getElementById('heuredebut3').options.length=0;
    document.getElementById('heurefin3').options.length=0;
    document.getElementById('blocage3').options.length=0;
    }
    et cela fonctionne. merci à tous.
    je n'aime pas trop ce type d'approche qui "saccage le DOM", enfin rien de prouvé!

  10. #10
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    c'est en effet une méthode que j'appelle "le pied de biche" ^^
    il est préférable de boucler sur la première option en la supprimant ...

  11. #11
    Membre du Club Avatar de caro71ol
    Étudiant
    Inscrit en
    Janvier 2011
    Messages
    145
    Détails du profil
    Informations personnelles :
    Âge : 33

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2011
    Messages : 145
    Points : 61
    Points
    61
    Par défaut
    bah j'y connais rien alors cette methode fonctionne donc pour l'instant ca me convient.

  12. #12
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    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
     
    <script type="text/javascript">
    function videliste(idliste){
    maliste=document.getElementById(idliste)
    while (maliste.options[0]){
    	maliste.removeChild(maliste.options[0])
    	}
    }
    function foo()	{
    videliste('heuredebut3');
    videliste('heurefin3');
    videliste('blocage3');
    }
     
    </script>
    </head>
     
    <body>
    <select id="heuredebut3">
     <option>lkjhlkjhl</option>
     <option>lkjhlkjhl</option>
     <option>lkjhlkjhl</option>
     <option>lkjhlkjhl</option>
     <option>lkjhlkjhl</option>
     <option>lkjhlkjhl</option>
     <option>lkjhlkjhl</option>
     <option>lkjhlkjhl</option>
     <option>lkjhlkjhl</option>
    </select> 
    <select id="heurefin3">
     <option>lkjhlkjhl</option>
     <option>lkjhlkjhl</option>
     <option>lkjhlkjhl</option>
     <option>lkjhlkjhl</option>
     <option>lkjhlkjhl</option>
     <option>lkjhlkjhl</option>
     <option>lkjhlkjhl</option>
     <option>lkjhlkjhl</option>
     <option>lkjhlkjhl</option>
    </select>
    <select id="blocage3">
     <option>lkjhlkjhl</option>
     <option>lkjhlkjhl</option>
     <option>lkjhlkjhl</option>
     <option>lkjhlkjhl</option>
     <option>lkjhlkjhl</option>
     <option>lkjhlkjhl</option>
     <option>lkjhlkjhl</option>
     <option>lkjhlkjhl</option>
     <option>lkjhlkjhl</option>
    </select>
    <input type="button" onclick="foo()" value='efface' />
    </body>
     
    </html>

  13. #13
    Membre du Club Avatar de caro71ol
    Étudiant
    Inscrit en
    Janvier 2011
    Messages
    145
    Détails du profil
    Informations personnelles :
    Âge : 33

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2011
    Messages : 145
    Points : 61
    Points
    61
    Par défaut
    vous avez de la chance cela fonctionne aussi!

  14. #14
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    vous avez de la chance
    La chance n'a rien à voir là dedans !!!

  15. #15
    Membre du Club Avatar de caro71ol
    Étudiant
    Inscrit en
    Janvier 2011
    Messages
    145
    Détails du profil
    Informations personnelles :
    Âge : 33

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2011
    Messages : 145
    Points : 61
    Points
    61
    Par défaut
    je m'en doute bien

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

Discussions similaires

  1. Rendre une option de liste déroulante insélectionnable
    Par Matt59310 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 17/04/2009, 12h10
  2. Réponses: 4
    Dernier message: 30/01/2008, 22h34
  3. Actualiser une zone de liste deroulante
    Par BBert dans le forum Access
    Réponses: 5
    Dernier message: 05/06/2007, 17h01
  4. mettre à jour une zone de liste deroulante ?
    Par jessy212 dans le forum Access
    Réponses: 2
    Dernier message: 30/08/2006, 14h50
  5. erreur avec une zone de liste deroulante
    Par MCarole dans le forum Access
    Réponses: 9
    Dernier message: 18/07/2006, 11h45

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