Réponses:
var foo = $('#multiple').val();
L'utilisation de la .val()
fonction sur une liste à sélection multiple renverra un tableau des valeurs sélectionnées:
var selectedValues = $('#multipleSelect').val();
et dans votre html:
<select id="multipleSelect" multiple="multiple">
<option value="1">Text 1</option>
<option value="2">Text 2</option>
<option value="3">Text 3</option>
</select>
null
plutôt qu'un tableau vide. Cela signifie que si vous ajoutez par programme une valeur sélectionnée, vous avez un peu de jonglerie à faire pour bien faire les choses.
var selectedValues = $('#multipleSelect').val() || [];
Par exemple, il convient de noter qu'il renvoie un tableau de chaînes. Je comparais à un entier et n'obtenais aucune correspondance, alors j'ai ajouté un fichier .toString()
.
Vous pouvez également utiliser la fonction de carte js:
$("#multipleSelect :selected").map(function(i, el) {
return $(el).val();
}).get();
Et puis vous pouvez obtenir n'importe quelle propriété de l' option
élément:
return $(el).text();
return $(el).data("mydata");
return $(el).prop("disabled");
etc...
el
tant qu'objet jQuery pour chaque option. Sortez directement du DOM quand ce n'est pas trop bizarre. Vous pourriez changer $(el).val()
pour juste el.value
. Bien sûr, si vous êtes habitué à jQuery ou que vous souhaitez récupérer des données ou des attributs comme vos autres exemples, jQuery ne fait de mal à personne.
var selected=[];
$('#multipleSelect :selected').each(function(){
selected[$(this).val()]=$(this).text();
});
console.log(selected);
Encore une autre approche à ce problème. Le tableau sélectionné aura les index comme valeurs d'option et chaque élément du tableau aura le texte comme valeur.
par exemple
<select id="multipleSelect" multiple="multiple">
<option value="abc">Text 1</option>
<option value="def">Text 2</option>
<option value="ghi">Text 3</option>
</select>
si les options 1 et 2 sont sélectionnées.
le tableau sélectionné sera:
selected['abc']=1;
selected['def']=2.
Juste par une ligne-
var select_button_text = $('#SelectQButton option:selected')
.toArray().map(item => item.text);
Sortie: ["text1", "text2"]
var select_button_text = $('#SelectQButton option:selected')
.toArray().map(item => item.value);
Sortie: ["valeur1", "valeur2"]
Si vous utilisez .join ()
var select_button_text = $('#SelectQButton option:selected')
.toArray().map(item => item.text).join();
Sortie: texte1, texte2, texte3
Code HTML:
<select id="multiple" multiple="multiple" name="multiple">
<option value=""> -- Select -- </option>
<option value="1">Opt1</option>
<option value="2">Opt2</option>
<option value="3">Opt3</option>
<option value="4">Opt4</option>
<option value="5">Opt5</option>
</select>
Code JQuery:
$('#multiple :selected').each(function(i, sel){
alert( $(sel).val() );
});
Esperons que ça marche
$('#multiple').find(':selected')
précéder un sélecteur d'identifiant comme celui-ci: @Prabhagaran
Obtenir les valeurs sélectionnées dans le séparateur par virgule
var Accessids = "";
$(".multi_select .btn-group>ul>li input:checked").each(function(i,obj)
{
Accessids=Accessids+$(obj).val()+",";
});
Accessids = Accessids.substring(0,Accessids.length - 1);
console.log(Accessids);
Utilisez simplement ceci
$('#multipleSelect').change(function() {
var selectedValues = $(this).val();
});
Text 1
au lieu de valeur? remplacer.val()
par.text()
?