JQUERY Recuperer toutes les values d'une liste (select)

Résolu/Fermé
BadGamer Messages postés 517 Date d'inscription mercredi 24 novembre 2010 Statut Membre Dernière intervention 25 décembre 2014 - 9 déc. 2013 à 12:01
BadGamer Messages postés 517 Date d'inscription mercredi 24 novembre 2010 Statut Membre Dernière intervention 25 décembre 2014 - 9 déc. 2013 à 12:30
Bonjour,
J'ai une liste sous cette forme:


<select id="liste" align="top" name="liste" size="5">

<option value="<author>Thomas Nom</author>">Thomas Nom</option>
<option value="<author>Thomas Nom2</author>">Thomas Nom2</option>
</select>

Elle affiche donc
Thomas Nom
Thomas Nom2

Mais contient en value la chaine avec des balises <author> ( c'est pour l'exemple)
Je voudrais récupérer dans une variable la chaine suivante:
<author>Thomas Nom</author><author>Thomas Nom2</author>

mais quand je fait:

function synchroListeTextBox(){
var $listeAuteur=($("#liste")).val();
alert($listeAuteur);
}
Je n'ai que l'auteur selectionné dans la liste qui arive.
Auriez vous une idée pour looper dans tout les éléments de la liste et les ajouter un a un a une variable ?
Merci d'avance

3 réponses

Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 526
Modifié par Pitet le 9/12/2013 à 12:15
Salut,

var values = '';
 
$('#liste option').each(function() { values += $(this).val(); });
 
console.log(values);
6
BadGamer Messages postés 517 Date d'inscription mercredi 24 novembre 2010 Statut Membre Dernière intervention 25 décembre 2014 132
9 déc. 2013 à 12:30
Merci ça fonctionne !
0
ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 566
9 déc. 2013 à 12:08
Salut,

essaie un truc du genre :

$('author').each(function(){
   // ton code
});
1
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 526
9 déc. 2013 à 12:20
'author' n'est pas considéré comme une balise car cette dernière est dans l'attribut value de la balise option
0
ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 566
9 déc. 2013 à 12:26
exact, j'avais lu en diagonales... dans ce cas un simple $('option') ou ce que tu proposes ira très bien ^^
0
BadGamer Messages postés 517 Date d'inscription mercredi 24 novembre 2010 Statut Membre Dernière intervention 25 décembre 2014 132
Modifié par BadGamer le 9/12/2013 à 12:20
C'est bon j'ia trouvé tout seul:

function synchroListeTextBox(){
    var $nb=($("#liste")).length;
    for(var i=0;i<$nb;i++)
    {
        var $listeAuteur=$listeAuteur+($("#liste"))[i].value
    }
    alert($listeAuteur);


Merci quand même !
1
ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 566
9 déc. 2013 à 12:28
Tu te compliques la vie ;) essaie d'utiliser la réponse de Pitet plutôt.

D'ailleurs, ton code ne va pas fonctionner étant donné que tu réinitialises la variable listeAuteur à chaque tour de ta boucle.
Les variables ne prennent pas de $ en js non plus.

Non, honnêtement, prends le code de Pitet ;)
0