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 :

Plugin JS permettant de masquer des éléments (Cacher des items dans une liste déroulante)


Sujet :

JavaScript

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Octobre 2016
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Plugin JS permettant de masquer des éléments (Cacher des items dans une liste déroulante)
    Bonjour ,
    Je voudrais savoir s'il y aurait quelqu'un qui pourrait m'aider sur un sujet concernant le filtrage d'une liste déroulante , j'ai réalisé un code permettant de filtrer une liste déroulante afin d'afficher le contenu de mon array dans ma liste déroulante et de masquer ceux qui ne sont pas présents dedans

    Voici ci-dessous le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    let accept = ['2101','2102','2103','2104','2105','2106','2107','2108','2109','2110'];
    var liste = document.getElementById('boundlist-1201-listEl').childNodes[0].childNodes;
    let inner = '';
    for(let i=0, maxi = liste.length; i < maxi ; i++) {
        if( ! accept.includes(liste[i].innerHTML.substr(0,4)))
         liste[i].style.display='none';
    }
    Cela fonctionne, mais seulement à partir de la console de chrome et il faut également cliquer sur la liste déroulante pour que celle-ci puisse être chargée sinon mon code ne fonctionne

    Comment pourrais-je faire en sorte que mon code fonctionne dès le chargement de la page ?

    Merci d'avance pour vos retours

  2. #2
    Membre habitué Avatar de Skunka
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2018
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2018
    Messages : 135
    Points : 158
    Points
    158
    Par défaut
    Salut,

    une petite recherche google ne ferais pas de mal, c'est une notion très basique du javascript à mon avis: https://developer.mozilla.org/fr/doc...MContentLoaded

    Le principe est simplement d'ajouter un listener sur ta page web. Une la page chargée, le contenu de la fonction s'exécute donc en y plaçant ton code, il sera automatique exécuter au chargement de ta page.

    Cordialement,
    Skunka.
    Traverse les rues ...

    Git: https://github.com/BlueSkunka

    Débutant à vie

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Octobre 2016
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Bonjour ,

    J'ai effectivement effectuer pas mal de recherche sur le net à ce sujet et j'ai tenté le code suivant comprenant l’évènement DOMContentLoaded :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    addEventListener('DOMContentLoaded', () => {
        let accept = ['2101','2102','2103','2104','2105','2106','2107','2108','2109','2110'];
        var liste = document.getElementById('boundlist-1201-listEl').childNodes[0].childNodes;
        let inner = '';
        for(let i=0, maxi = liste.length; i < maxi ; i++) {
            if( ! accept.includes(liste[i].innerHTML.substr(0,4)))
             liste[i].style.display='none';
        }
    });
    Cependant lorsque je vais sur la page qui contient la liste déroulante , rien ne se passe , aucune erreur dans la console et aucun filtrage n'a lieu

    Auriez vous une réponse à ce problème par hasard ?

    Cordialement

  4. #4
    Membre habitué Avatar de Skunka
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2018
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2018
    Messages : 135
    Points : 158
    Points
    158
    Par défaut
    Oui, tu ajoutes le listener mais sur aucun élément ! il faut le placer sur l'objet document:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    document.addEventListener('DOMContentLoaded', () => {
        let accept = ['2101','2102','2103','2104','2105','2106','2107','2108','2109','2110'];
        var liste = document.getElementById('boundlist-1201-listEl').childNodes[0].childNodes;
        let inner = '';
        for(let i=0, maxi = liste.length; i < maxi ; i++) {
            if( ! accept.includes(liste[i].innerHTML.substr(0,4)))
             liste[i].style.display='none';
        }
    });
    Traverse les rues ...

    Git: https://github.com/BlueSkunka

    Débutant à vie

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Octobre 2016
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci beaucoup pour l'indication , cependant je trouve tout de même cela étonnant que suite a cet modification , rien ne change , je viens de recharger le plugin sur chrome , ensuite je me suis rediriger sur la page qui contient la liste déroulante mais celle ci n'est pas du tout filtrer , j'ai la totalité des champs alors que je souhaite avoir que le contenu de ma liste

  6. #6
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    Observe ce principe. Est-ce réaliste ou as-tu un système vraiment plus compliqué (hors données php, etc.)?
    Parce que sinon, je ne vois pas bien le problème.

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <select id="liste" name="liste">
    	<option>liste</option>
    	<option value="un">2011truc</option>
    	<option value="deux">2119machin</option>
    	<option value="trois">2107truc</option>
    	<option value="quatre">2107machin</option>
    	<option value="cinq">2106bidule</option>
    	<option value="six">2107bidule</option>
    	<option value="sept">2106bidule</option>
    	<option value="huit">2011machin</option>
    	<option value="neuf">2106bidule</option>
    	<option value="dix">2009bidule</option>
    </select>
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    document.addEventListener('DOMContentLoaded', () => {
        let accept = ['2101','2102','2103','2104','2105','2106','2107','2108','2109','2110'];
        var liste = document.querySelectorAll("#liste option");
        liste.forEach(v=>{if(!accept.includes(v.text.slice(0,4))){v.style.display="none"}})
    })

Discussions similaires

  1. Répétitions des items dans une liste déroulante
    Par Creanet dans le forum Langage
    Réponses: 5
    Dernier message: 15/09/2009, 15h13
  2. masquer des valeurs dans une liste deroulante
    Par titeZ dans le forum IHM
    Réponses: 15
    Dernier message: 09/08/2007, 15h07
  3. Mettre des images dans une liste déroulante
    Par PrinceMaster77 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 01/12/2006, 15h35
  4. Affichage des mois dans une liste déroulante
    Par Le Rebel dans le forum Langage
    Réponses: 15
    Dernier message: 20/02/2006, 13h37

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