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 :

Ajouter des éléments dans un champ text


Sujet :

jQuery

  1. #1
    Membre confirmé Avatar de gtraxx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 043
    Points : 570
    Points
    570
    Par défaut Ajouter des éléments dans un champ text
    Bonjour à tous ,je doit construire un truc un peux space pour mon boss et je cherche comment m'y prendre.
    En faites j'ai une liste d'élément comme un nuage de TAG , chaque éléments est en faites une catégorie.
    Je doit rendre ses éléments cliquable qui s'ajoute dans un champs texte,
    Donc par exemple: j'ai une liste contenant :
    Test , Verbe , jQuery , Bonhomme , etc ...
    Il faut que chaque mots puisse être ajouter dans un champs texte plus bas et qui biensur place une virgule ou point virgule automatiquement.
    J'ai essayer un simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $(function() {
    	$('.test').bind('click', function() {
    	$('sector_activity')
    		.append('test');
    		this.blur();
    	});
    });
    Mais sa ne fonctionne pas , Un plugin m'aiderai bien pour ne pas devoir écrire tout un barda vu que je doit terminé sa pour tout à l'heure
    Au petit déjeuner, je prend du PHP et au souper du jQuery.
    AFUP 2009 : Bien optimiser son code pour le référencement
    Mon projet open source de librairie PHP 5: magix cjquery

  2. #2
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    append n'est vraiment pas fait pour ça
    Append content to the inside of every matched element.
    This operation is similar to doing an appendChild to all the specified elements, adding them into the document.
    Il faudrait que tu utilises une fonction du style text().

    Petit exemple totalement en jQuery (pas testé) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $(function() {
        $('.test').bind('click', function() {
           var texte = jQuery.trim($('#sector_activity').text());
           if(texte.length > 0) 
            $('#sector_activity').text(texte + ', ' + $(this).html());
        else
               $('#sector_activity').text($(this).html());
           this.blur();
        });
    });
    avec sector_activity l'id de l'input et .test un élément HTML contenant le texte que tu veux mettre dans ton input

  3. #3
    Membre confirmé Avatar de gtraxx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 043
    Points : 570
    Points
    570
    Par défaut
    Ben j'ai essayer ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $(function() {
       $('.activity').bind('click', function() {
       if($('#sector_activity').length > 0)
           $('#sector_activity').val($('#sector_activity').val()+$(this).text()+', ');
       else
           $('#sector_activity').val($('#sector_activity').val()+$(this).text());
       this.blur();
       });
    });
    Seulement ma condition ne sert a rien, je souhaitais dire que si un seul mots est contenu dans le champs de destination, ne pas ajouter de virgule.
    Mais "Si" le champs contient plus d'un mots ajouter la virgule

    Pour l'instant cela n'ajoute que les mots un à la suite des autres avec chaque fois la virgule.
    Pour bien faire faudai aussi implémenter que si l'ont clique une deuxième fois sur un même mots le supprimer du champs de destination.
    Au petit déjeuner, je prend du PHP et au souper du jQuery.
    AFUP 2009 : Bien optimiser son code pour le référencement
    Mon projet open source de librairie PHP 5: magix cjquery

  4. #4
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Citation Envoyé par gtraxx Voir le message
    Ben j'ai essayer ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $(function() {
       $('.activity').bind('click', function() {
       if($('#sector_activity').length > 0)
           $('#sector_activity').val($('#sector_activity').val()+$(this).text()+', ');
       else
           $('#sector_activity').val($('#sector_activity').val()+$(this).text());
       this.blur();
       });
    });
    Seulement ma condition ne sert a rien, je souhaitais dire que si un seul mots est contenu dans le champs de destination, ne pas ajouter de virgule.
    Mais "Si" le champs contient plus d'un mots ajouter la virgule

    Pour l'instant cela n'ajoute que les mots un à la suite des autres avec chaque fois la virgule.
    C'est pourquoi il est préférable d'ajouter la virgule avant insertion du mot et non comme tu le fais. D'où ce que j'avais proposé.

  5. #5
    Membre confirmé Avatar de gtraxx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 043
    Points : 570
    Points
    570
    Par défaut
    je viens de tester :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $('.activity').bind('click', function() {
           var texte = $.trim($('#sector_activity').text());
           if(texte.length > 0) 
            $('#sector_activity').text(texte + ', ' + $(this).html());
        else
               $('#sector_activity').text($(this).html());
           this.blur();
        });
    });
    Mais cela n'ajoute rien, je clique dans le vide lol
    C'est surement du au fais que j'ajoute des éléments texte dans un champs ?
    Au petit déjeuner, je prend du PHP et au souper du jQuery.
    AFUP 2009 : Bien optimiser son code pour le référencement
    Mon projet open source de librairie PHP 5: magix cjquery

  6. #6
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Oui je connais pas de tête toutes les fonctions. Pour les input c'est val()

  7. #7
    Membre confirmé Avatar de gtraxx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 043
    Points : 570
    Points
    570
    Par défaut
    oui c'est bien val lol, je l'avais fais plus haut, maintenant je l'ai modifier correctement pour mes besoins.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $('.activity').bind('click', function() {
           var texte = $.trim($('#sector_activity').val());
           if(texte.length > 0) 
            $('#sector_activity').val(texte + ', ' + $(this).text());
        else
               $('#sector_activity').val($(this).text());
           this.blur();
        });
    Par contre pour le fais que si je reclique sur un mots, il est supprimé c'est faisable mais ou mettre mon remove ?? la est la question
    Au petit déjeuner, je prend du PHP et au souper du jQuery.
    AFUP 2009 : Bien optimiser son code pour le référencement
    Mon projet open source de librairie PHP 5: magix cjquery

  8. #8
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Une solution serait de désactiver le clic sur le lien ou l'élément cliqué Pour ne pas compliquer les choses

    Tu utilises quoi ?

  9. #9
    Membre confirmé Avatar de gtraxx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 043
    Points : 570
    Points
    570
    Par défaut
    Ben j'utilise ce qu'il y a de plus simple pour l'instant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <div id="activityList">
    			<a href="#" class="activity">Batiment</a>, <a href="#" class="activity">Esthetique</a>, <a href="#" class="activity">Coiffure</a>
    			</div>
    <textarea class="required" id="sector_activity" name="sector_activity" readonly="true" value="" cols="45" rows="5"></textarea>
    Par contre j'ai pas saisi ce que vous vouliez dire sur le "désactiver le clique"
    Je suis un peux à la masse aujourd'hui lol
    Au petit déjeuner, je prend du PHP et au souper du jQuery.
    AFUP 2009 : Bien optimiser son code pour le référencement
    Mon projet open source de librairie PHP 5: magix cjquery

  10. #10
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $(this).attr("onclick","return false");
    Devrait marcher

  11. #11
    Membre confirmé Avatar de gtraxx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 043
    Points : 570
    Points
    570
    Par défaut
    je viens de tester mais cela ne change rien, il faudrai un truc du genre si click remove class ou un truc comme sa.
    Ben je vois le code mais je ne sais pas quel méthode appliqué c'est la tout le probléme
    Au petit déjeuner, je prend du PHP et au souper du jQuery.
    AFUP 2009 : Bien optimiser son code pour le référencement
    Mon projet open source de librairie PHP 5: magix cjquery

  12. #12
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Tu peux mettre le code que tu utilises contenant le code généré par le navigateurs ??

  13. #13
    Membre confirmé Avatar de gtraxx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 043
    Points : 570
    Points
    570
    Par défaut
    Voici le code dans le navigateur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <script type="text/javascript">
    $(function() {
      $('.activity').bind('click', function() {
           var texte = $.trim($('#sector_activity').val());
           if(texte.length > 0) 
            $('#sector_activity').val(texte + ', ' + $(this).text());
        else
               $('#sector_activity').val($(this).text());
           this.blur();
           $(this).attr("onclick","return false");
        });
    });
    </script>
    Et la le code générer par Firebug si je clique sur un des liens :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <a class="activity" title="sante" href="#" onclick="return false">sante</a>
    Au petit déjeuner, je prend du PHP et au souper du jQuery.
    AFUP 2009 : Bien optimiser son code pour le référencement
    Mon projet open source de librairie PHP 5: magix cjquery

  14. #14
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Exemple fonctionnel :
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
     
    <html xmlns="http://www.w3.org/1999/xhtml">
     
    <head>
      <title>Hello!</title>
      <script language="JavaScript" src="jquery.js" type="text/javascript"></script>
        <script type="text/javascript">
    $(function() {
      $('.activity').bind('click', function() {
           if(!$(this).hasClass("selected"))
           {var texte = $.trim($('#sector_activity').val());
           if(texte.length > 0)
            $('#sector_activity').val(texte + ', ' + $(this).text());
        else
               $('#sector_activity').val($(this).text());
           this.blur();
           $(this).addClass("selected");
            }
            return false;
        });
    });
    </script>
     
    </head>
     
    <body>
     
         <a class="activity" title="sante" href="#">sante</a>
         <input type="text" id="sector_activity" value="" />
    </body>
     
    </html>

  15. #15
    Membre confirmé Avatar de gtraxx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 043
    Points : 570
    Points
    570
    Par défaut
    Ah oui bien vu
    merci Kerod
    Honte à moi
    Au petit déjeuner, je prend du PHP et au souper du jQuery.
    AFUP 2009 : Bien optimiser son code pour le référencement
    Mon projet open source de librairie PHP 5: magix cjquery

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

Discussions similaires

  1. [Débutant] Ajouter des éléments ( ou plutôt du texte) dans un FlowLayoutPanel
    Par fistfist dans le forum VB.NET
    Réponses: 1
    Dernier message: 12/05/2012, 19h30
  2. Ajouter des éléments dans un texte
    Par Jiyuu dans le forum Qt
    Réponses: 0
    Dernier message: 06/10/2011, 12h14
  3. Ajouter des éléments dans une base de données Access
    Par bidule123456 dans le forum ASP
    Réponses: 74
    Dernier message: 07/09/2007, 14h00
  4. Ajout des éléments dans un tableau de structure
    Par rphenix dans le forum WinDev
    Réponses: 10
    Dernier message: 22/06/2007, 11h34
  5. Réponses: 3
    Dernier message: 13/03/2007, 13h40

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