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 :

Récupérer les valeurs et le data-* des éléments sélectionnés


Sujet :

jQuery

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2010
    Messages : 163
    Points : 59
    Points
    59
    Par défaut Récupérer les valeurs et le data-* des éléments sélectionnés
    Bonjour,

    J'ai un élément SELECT2 du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <select name='myselectbox' multiple='multiple' data-placeholder='exemple' >
    <option value='781' data-optid='1'>item 1</option>
    <option value='166' data-optid='2'>item 2</option>
    <option value='440' data-optid='5'>item 3</option>
    </select>
    J'aimerais parvenir à extraire des couples value + optid pour tous les éléments sélectionnés et faire un array avec tout cela.
    Par exemple, si je sélectionne l'item1 et l'item 3, j'aimerais obtenir l'array [ ['781', '1'], ['440','5'] ].

    J'ai essayé avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var selection = $("select[name='myselectbox']", form).val(); // c'est bien un array
    et avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var selection = $("select[name='myselectbox']",form).select2("data");
    mais je ne parviens pas à trouver comment faire...

    Pourriez-vous m'aider svp ?

    Mille mercis !

    T.

  2. #2
    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 637
    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 637
    Points : 66 658
    Points
    66 658
    Billets dans le blog
    1
    Par défaut
    pour recuperer le value de la valeur selectionnée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    selectionvalue = $("select[name='myselectbox']").val()
    pour recuperer le data de la valeur selectionnée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    selectiondata = $("select[name='myselectbox'] option:selected").data("optid")
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2010
    Messages : 163
    Points : 59
    Points
    59
    Par défaut
    Je sais bien, cela... mais l'idée avec l'option "multiple", c'est qu'on peut sélectionner simultanément plusieurs items.
    Alors oui, comme je le disais, le val() retourne un array avec les values de tous les items sélectionnés. Mais le $("select[name='myselectbox'] option:selected").data("optid") ne renvoie qu'une seule valeur...

  4. #4
    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 637
    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 637
    Points : 66 658
    Points
    66 658
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $("select[name='myselectbox'] option:selected")
    retourne la collection des options sélectionnées

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    TABoptid=[];
     $("select[name='myselectbox'] option:selected").each( function(){
     TABoptid.push( $(this).data('optid') ) } )
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    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,
    pourquoi ne pas écrire directement <option value='781|1'>item 1</option> et faire un split('|') de la value ?

    Nota : le each( function() reste nécessaire pour la récupération.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2010
    Messages : 163
    Points : 59
    Points
    59
    Par défaut
    Parce que cela ne m'arrange pas... J'aimerais si possible parvenir à faire ce que je souhaite avec les data-*...

    EDIT. Ah je viens de voir la réponse précédente... J'y suis parvenu avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    TABoptid=[];
    			$("select[name='...'] option:selected").each( function(){
    				TABoptid.push(  [$(this).val(), $(this).data('optid') ] );
    			} )
    Super :-) C'est donc résolu :-) Mille mercis !

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

Discussions similaires

  1. [SVG] Récupérer les valeurs de taille d'un élément
    Par Nothus dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 04/04/2015, 19h04
  2. Réponses: 2
    Dernier message: 14/12/2009, 07h33
  3. Réponses: 1
    Dernier message: 05/05/2009, 10h40
  4. [PHP-JS] Récupérer les valeurs des checkbox
    Par jamirokoi dans le forum Langage
    Réponses: 3
    Dernier message: 07/04/2006, 16h24
  5. Réponses: 4
    Dernier message: 05/01/2006, 20h29

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