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 :

acceder aux valeurs d'un element multiselect/Jquery


Sujet :

JavaScript

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2008
    Messages : 105
    Points : 109
    Points
    109
    Par défaut acceder aux valeurs d'un element multiselect/Jquery
    Bonjour à tous,
    j'ai réussi à implémenter un composant multiselect /Jquery avec check box intégré. J'essaie d'accéder via js aux valeurs et labels des "options", mais ça ne marche pas du tout.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    var sel1=document.forms['recherche_auto'].elements['control_6[]'];
    var nbre_elem = sel1.length; 
    for (var i = 0;i < nbre_elem;i++)
    {
    	//if (document.forms['recherche_auto'].elements['control_6[]'].options[i].selected) { alert(i); }
    	if (sel1.options[i].selected) {alert (i);}
     
    }
    L'élement "options" est toujours null ou inexistant.
    Faut-il utiliser une fonction spécifique JQUERY?

    Alpha.

  2. #2
    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 : 74
    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
    Bonsoir

    En jQuery : http://api.jquery.com/selected-selector/

    Mais je ne vois pas de jQuery dans votre extrait de code.

  3. #3
    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 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var sel1=document.forms['recherche_auto'].elements['control_6[]'];
    on peut voir le html ?

  4. #4
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Points : 6 755
    Points
    6 755
    Par défaut
    Bonjour,
    Citation Envoyé par alpha232 Voir le message
    un composant multiselect /Jquery avec check box intégré.
    Si c’est un select multiple avec des checkboxes à l’intérieur, il y a des chances que la navigateur fasse n’importe quoi. On veut voir le code HTML !

  5. #5
    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 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    on peut imaginer un truc sur le meêm ^rincipe que ça
    http://www.developpez.net/forums/d89...s/#post5314095

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2008
    Messages : 105
    Points : 109
    Points
    109
    Par défaut
    voici mon code js :
    la fonction maj_aff_marques() devrait juste afficher l'index des elements qui ont été cochés.

    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
    <script type="text/javascript">
    $(document).ready( function() {
     
    				$("#control_6").multiSelect( null, function(el) {
    			$("#callbackResult").show().fadeOut();maj_aff_marques();
    				});
    });
     
    function maj_aff_marques() {
    var sel1=document.forms['recherche_auto'].elements['control_6[]'];
    var nbre_marques = sel1.length;	
    for (var i = 0;i < nbre_marques;i++)
    	{
    		if (sel1.options[i].selected) {alert (i);};
    	}
    }
    </script>
    et voici mon html (j'ai enlevé le code php qui remplit les options)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <select id="control_6" name="control_6[]" multiple="multiple" size="5">
    <option value=""></option>
    <option value="1">GOODYEAR</option>
    <option value="2">MICHELIN</option>
    <option value="3">BRIDGESTONE</option>
    <option value="4">FULDA</option>
    <option value="5">PIRELLI</option>
     </select>

  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 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    tu es en jquery...
    pourquoi ne pas utiliser each() ?

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2008
    Messages : 105
    Points : 109
    Points
    109
    Par défaut
    bonsoir tout le monde,

    En me basant sur l'exemple se trouvant http://api.jquery.com/selected-selector/,j'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $("#control_6 option:selected").each(function () {
                    str += $(this).text() + " ";
                  });
    avec mon multi select qui s'appelle control_6,pour afficher les valeurs du select ds un div, mais cela ne marche pas. Par contre, si c'est un multiselect non personnalisé par Jquery, cela fonctionne. Faut-il utiliser plutôt le selecteur pour les checkbox?

    Alpha.

  9. #9
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Points : 6 755
    Points
    6 755
    Par défaut
    Mais c’est quoi cette histoire de checkbox ? Y’en a pas dans ton code HTML…
    Sinon, essaye .val() plutôt que .text().

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2008
    Messages : 105
    Points : 109
    Points
    109
    Par défaut
    En fait c'est un select qui affiche une liste d'elements sélectionnables avec des checkboxes (voir sources --> multiselect.js)

    Alpha.

    [Edit 2010-08-04 01:12]

    Je crois avoir compris une partie du problème: Le code ...multiselect.js supprime complètement le select et le remplace par un div qui contient un checkbox par option trouvé ds le select, donc on ne sait accéder qu'aux valeurs des checkboxes créés. Mais pour la suite ... grrrrrrr je n'arrive qu'afficher le premier checkbox créé .....

    Alpha.

    Trouvé!!!
    Ce sont bien des checkboxes dont il faut aller rechercher la valeur dans le div dont la classe est "multiSelectOptions", par contre pour afficher le label du checkbox, autrement dit le texte qui était entre les balises <option>, il faut utiliser le dom qui va chercher la valeur du texte du label du checkbox associé.

    Voici le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    var virgule = 0;
    var str_virgule ='';
    $(".multiSelectOptions").find('INPUT:checkbox:checked').each( function() {
    						 if (virgule > 0) str_virgule=', ';
    						 if( $(this).parent().text() != "Toutes les marques" ) {
    							 str = str + str_virgule + $(this).parent().text() ;
    							 virgule++; }
    					});
     $("#affich_mrq")[0].innerHTML = str;
    Alpha.

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

Discussions similaires

  1. Acceder aux valeurs JSON
    Par ody31gr dans le forum Programmation multimédia/Jeux
    Réponses: 0
    Dernier message: 25/05/2010, 12h14
  2. GLSL Probleme acceder aux valeurs d'un tableau
    Par tib0000 dans le forum OpenGL
    Réponses: 1
    Dernier message: 29/01/2008, 14h21
  3. Acceder aux proprietes d'un element charge
    Par bractar dans le forum ActionScript 3
    Réponses: 1
    Dernier message: 20/10/2007, 11h03
  4. acceder aux valeurs d'une liste
    Par david06600 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 06/04/2007, 17h21
  5. acceder aux valeurs d'une liste
    Par david06600 dans le forum Struts 1
    Réponses: 4
    Dernier message: 07/03/2007, 20h17

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