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 :

Sélecteur [champ!=''] ?


Sujet :

jQuery

  1. #1
    Membre averti
    Homme Profil pro
    Paramétreur de progiciels
    Inscrit en
    Octobre 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Paramétreur de progiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 970
    Points : 381
    Points
    381
    Par défaut Sélecteur [champ!=''] ?
    Bonjour,

    Le code suivant fonctionne mais fait l'inverse de ce que je souhaite (il cache les lignes qui contiennent le texte saisi) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $("[prenoms*='" + recherche_prenoms + "']:visible").hide();
    Si je mets le code suivant, il ne fonctionne pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $("[prenoms!='" + recherche_prenoms + "']:visible").hide();
    Je voudrais cacher toutes les lignes qui ne contiennent pas le texte saisi.

    Savez-vous pourquoi et pouvez-vous m'aider à faire fonctionner ce bout de code ?

    Merci,
    ZiP

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Bonjour,
    il est important de bien lire la documentation fonction de son besoin !
    :not() Selector

  3. #3
    Membre averti
    Homme Profil pro
    Paramétreur de progiciels
    Inscrit en
    Octobre 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Paramétreur de progiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 970
    Points : 381
    Points
    381
    Par défaut
    Bonjour,

    Ce code m'efface ma page complète :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $(":not([prenoms!='" + recherche_prenoms + "']):visible").hide();
    Celui-ci aussi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $(":not([prenoms!='" + recherche_prenoms + "']:visible)").hide();
    Merci pour votre aide,
    ZiP

  4. #4
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    Je voudrais cacher toutes les lignes qui ne contiennent pas le texte saisi.
    A priori, je dirais qu'il faut cacher la totalité du texte sauf le texte saisi, donc utiliser la méthode not().

    Comme on ignore tout de vos codes (CSS, HTML, JS), j'en suis réduit à proposer : $( sélecteur pour la totalité du texte ).not( sélecteur du texte saisi ).hide();.

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  5. #5
    Membre averti
    Homme Profil pro
    Paramétreur de progiciels
    Inscrit en
    Octobre 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Paramétreur de progiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 970
    Points : 381
    Points
    381
    Par défaut
    Bonjour,

    Voici mon code HTML :
    Code html : 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
    <p>
    	<label for="recherche_nom">Nom :</label>
    	<input value="r" autocomplete="off" id="recherche_nom" name="recherche_nom" type="text">
    	<label for="recherche_prenoms">Prénom :</label>
    	<input value="c" autocomplete="off" id="recherche_prenoms" name="recherche_prenoms" type="text">
    	<label for="recherche_sexe">Sexe :</label>
    	<select id="recherche_sexe" name="recherche_sexe">
    		<option value="T">Tous</option>
    		<option value="F">Féminin</option>
    		<option value="M">Masculin</option>
    	</select>
    </p>
    <select id="listing" name="listing" size="25">
    	<option id="2" nom="caron" prenoms="capucine pauline justine" sexe="F">CARON Capucine Pauline Justine (1989-)</option>
    	<option id="5" nom="martin" prenoms="suzanne mireille" sexe="F">MARTIN Suzanne Mireille (1934-2011)</option>
    	<option id="6" nom="dupont" prenoms="robert désiré sylvain" sexe="M">DUPONT Robert Désiré Sylvain (1928-2004)</option>
    	<option id="3" nom="dubois" prenoms="adélaïde martine geneviève" sexe="F">DUBOIS Adélaïde Martine Geneviève (2013-)</option>
    	<option id="4" nom="dubois" prenoms="claude guy andré" sexe="M">DUBOIS Claude Guy André (1954-)</option>
    	<option id="1" nom="dubois" prenoms="mathieu julien thomas" sexe="M">DUBOIS Mathieu Julien Thomas (1987-)</option>
    </select>

    Voici mon code JS :
    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
    $(function()
    {	
    	$("#recherche_nom").keyup(function()
    	{
    		RechercheListing();
    	});
     
    	$("#recherche_prenoms").keyup(function()
    	{
    		RechercheListing();
    	});
     
    	$("#recherche_sexe").change(function()
    	{
    		RechercheListing();
    	});
    });
     
    function RechercheListing()
    {
    	var recherche_nom = $("#recherche_nom").val().toLowerCase();
    	var recherche_prenoms = $("#recherche_prenoms").val().toLowerCase();
    	var recherche_sexe = $("#recherche_sexe").val();
     
    	$("#listing option").hide();
     
    	$("[nom*='" + recherche_nom + "']").show();
     
    	$("[prenoms*='" + recherche_prenoms + "']:visible").hide();
     
    	if( $("#recherche_nom").val().length == 0 && $("#recherche_prenoms").val().length == 0 && $("#recherche_sexe").val() == 'T' )
    	{
    		$("#listing option").show();
    	}
    }
    Merci,
    ZiP

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    si on prend le problème à l'envers : on affiche les options correspondantes (au lieu de masquer les options non-correspondantes) :

    Code javascript : 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
    $(window).on('load', function() {
       RechercheListing();
     });
     $(function() {
       $("body").on('keyup change', "#recherche_nom, #recherche_prenoms, #recherche_sexe", function() {
         RechercheListing();
       });
     });
     
     function RechercheListing() {
       var recherche_nom = $("#recherche_nom").val().toLowerCase();
       var recherche_prenoms = $("#recherche_prenoms").val().toLowerCase();
       var recherche_sexe = $("#recherche_sexe").val();
     
       var recherche = '';
       if (recherche_nom != '') {
         recherche += '[nom*="' + recherche_nom + '"]';
       }
       if (recherche_prenoms != '') {
         recherche += '[prenoms*="' + recherche_prenoms + '"]';
       }
       if (recherche != '' && recherche_sexe != 'T') {
         recherche += '[sexe*="' + recherche_sexe + '"]';
       }
       // recherche ?
       if (recherche != '') {
         $("#listing option").hide(); // on masque tout
         $("#listing option" + recherche).show(); // on affiche les correspondances
       } else {
         $("#listing option").hide(); // on masque tout
       }
     }

    Une simplification/concision d'écriture :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $(function()
    {	
    	$("body").on('keyup change', "#recherche_nom, #recherche_prenoms, #recherche_sexe", function(){
    		RechercheListing();
    	});
    });
    On peut remplacer $("body"). par $("#id_du_formulaire").

    Voir : http://codepen.io/jreaux62/pen/vLPyOX

    Bonus : remplissage des input depuis le select
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    // remplissage des input depuis le select
    $(function() {
       $("body").on('click change', "#listing", function() {
        var nom = $('#listing option:selected').attr('nom');
        var prenoms = $('#listing option:selected').attr('prenoms');
        var sexe = $('#listing option:selected').attr('sexe');
         $("#recherche_nom").val( nom );
         $("#recherche_prenoms").val( prenoms );
         $("#recherche_sexe").val( sexe );
       });
     });

    Remarque : pour forcer l'affichage en Majuscule (tout majuscule pour le nom, 1ères pour les prénoms) :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    	<input value="" autocomplete="off" id="recherche_nom" name="recherche_nom" type="text" style="text-transform:uppercase;">
    ...
    	<input value="" autocomplete="off" id="recherche_prenoms" name="recherche_prenoms" type="text" style="text-transform:capitalize;">
    Dernière modification par Invité ; 15/02/2016 à 19h23.

  7. #7
    Membre averti
    Homme Profil pro
    Paramétreur de progiciels
    Inscrit en
    Octobre 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Paramétreur de progiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 970
    Points : 381
    Points
    381
    Par défaut
    Bonsoir,

    Merci pour votre aide !

    J'avais pris le traitement à l'envers

    J'ai appris beaucoup de choses avec cet échange !

    Merci,
    ZiP

  8. #8
    Invité
    Invité(e)
    Par défaut
    Tant mieux !

    C'était aussi un bon exercice pour moi

    N.B. Un sur mon message précédent aurait été sympa...

  9. #9
    Membre averti
    Homme Profil pro
    Paramétreur de progiciels
    Inscrit en
    Octobre 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Paramétreur de progiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 970
    Points : 381
    Points
    381
    Par défaut
    Bonsoir,

    Je ne connais pas bien ce système, c'est corrigé

    Bonne soirée,
    ZiP

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

Discussions similaires

  1. [Absolute DataBase] Problème avec UNION sur champs BLOB
    Par Nono23 dans le forum Autres SGBD
    Réponses: 5
    Dernier message: 12/07/2014, 08h31
  2. problème avec ordre des champs d’une requête
    Par Bonero dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 17/10/2012, 10h44
  3. [WD-2007] Problème avec le code champ date
    Par BM1971 dans le forum Word
    Réponses: 6
    Dernier message: 03/06/2009, 18h22
  4. problème avec un formulaire : champ non défini
    Par merlubreizh dans le forum Langage
    Réponses: 5
    Dernier message: 04/02/2008, 15h22
  5. Problème avec un champ 'long'
    Par yannick dans le forum Débuter
    Réponses: 2
    Dernier message: 25/07/2003, 14h17

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