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

jQuery Discussion :

Rendre invisible des <option> qui contiennent un texte particulier et ne sont pas sélectionnées


Sujet :

jQuery

  1. #1
    Membre éprouvé
    Avatar de clavier12AZQSWX
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2009
    Messages
    1 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 470
    Par défaut Rendre invisible des <option> qui contiennent un texte particulier et ne sont pas sélectionnées
    bonjour,

    Dans un formulaire, je souhaite ôter de la vue des utilisateurs des options présentes dans les listes déroulantes qui ne sont pas à sélectionner cette année,ni à voir, ni à encombrer la vue (scrollbar) lors de la sélection ou l'ouverture des listes de choix.
    Toutes ses options contiennent le texte "**" (deux astérisques). L'admin nous a mis des ** devant chaque choix obsolète pour les placer en queue de liste car il ne peut pas les enlever (historique relationnel à garder dans sa base de données).

    par exemple :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <option value="145">**vieux groupe</option>

    Par contre, si on une option qui est sélectionnée au niveau du imput (au cas où un employé ouvre une très vieille fiche faisant appel à cette option), il ne faut pas qu'elle soit enlevée/cachée et surtout pas désélectionnée !
    .

    on peut mettre dans le selector les options sélectionnée mais on ne peut pas mettre les options non sélectionnées ! et j'ai un problème pour exprimer le "contenant le texte **" en syntaxe jquery.

    j'ai besoin de cela :
    Code jquery : Sélectionner tout - Visualiser dans une fenêtre à part
    $('option[value='**vieux groupe']:unselected').hide();

    c-a-d utiliser à la fois le value= et le unselected sauf que le unselected n'existe pas (il y a que le :selected dans la syntaxe possible) et en plus le contains('**') est inutilisable ici et je dois mettre le nom entier de l'option et tester avec value!

    y-a-t-il un plan alternatif possible côté client (côté navigateur) ?

  2. #2
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 519
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 519
    Par défaut
    Bonjour,

    Oui le sélecteur :unselected n'existe pas, mais tu peux toujours filtrer les options en fonction d'une condition, et c'est le texte de l'option qui doit être examiner et pas l'attribut value
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <select>
    <option value="145">**vieux groupe 1</option>
    <option value="146">**vieux groupe 2</option>
    <option value="147">**vieux groupe 3</option>
    </select>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $('select option')
    .filter(function(){
    	return $(this).text().includes("**vieux groupe") && !$(this).is($(this).parent().find('option:selected'));
    })
    .hide();

  3. #3
    Membre éprouvé
    Avatar de clavier12AZQSWX
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2009
    Messages
    1 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 470
    Par défaut
    merci, je vais voir comment je peux appliquer cela.

    je ne suis pas très à l'aise encore avec "filter", je commence à peine à bien maitriser le selector et le find.

    bonne journée

  4. #4
    Membre éprouvé
    Avatar de clavier12AZQSWX
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2009
    Messages
    1 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 470
    Par défaut
    bonjour,

    si ça peut aider, je viens donner une autre solution (pour enlever des listes, ce qui est obsolètes/supprimés et pas sélectionné)

    Code jquery : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $("#x_edt_mat_id option").each(function() {
    				var lib_option= $(this).text();
    				var est_selectionnee=$(this).is(':selected');				
    				var a_purger=(!est_selectionnee && (lib_option.charAt(0) == '*' || lib_option.includes("(supprimé!)")) );
    				if (a_purger)  $(this).remove();
    				});				
    			}

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

Discussions similaires

  1. [XL-2007] Rendre invisible des textbox si la checkbox n'est pas cochée dans l'userform
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 13/08/2009, 20h08
  2. Rendre invisible des tabpages d'un tabcontrol
    Par belocom dans le forum VB.NET
    Réponses: 10
    Dernier message: 25/05/2007, 15h42
  3. Réponses: 1
    Dernier message: 09/10/2006, 21h31
  4. [SELECT] possibilité de rendre invisible certains options
    Par gwadakillah dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 14/04/2006, 18h53
  5. Rendre invisibles des onglets de formulaires
    Par cabort josé dans le forum IHM
    Réponses: 4
    Dernier message: 16/11/2004, 17h48

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