Как получить несколько значений окна выбора с помощью jquery? - PullRequest
144 голосов
/ 14 июля 2010

Как получить несколько значений окна выбора, используя jquery?

Ответы [ 8 ]

279 голосов
/ 14 июля 2010

Использование функции .val() в списке с множественным выбором вернет массив выбранных значений:

var selectedValues = $('#multipleSelect').val();

и в вашем 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>
159 голосов
/ 14 июля 2010

jQuery .val ()

  var foo = $('#multiple').val(); 
11 голосов
/ 22 апреля 2014

Вы также можете использовать функцию карты js:

$("#multipleSelect :selected").map(function(i, el) {
    return $(el).val();
}).get();

И затем вы можете получить любое свойство элемента option:

return $(el).text();
return $(el).data("mydata");
return $(el).prop("disabled");
etc...
9 голосов
/ 19 мая 2014
var selected=[];
 $('#multipleSelect :selected').each(function(){
     selected[$(this).val()]=$(this).text();
    });
console.log(selected);

Еще один подход к этой проблеме. Выбранный массив будет иметь индексы в качестве значений параметров, а каждый элемент массива будет иметь текст в качестве значения.

например

<select id="multipleSelect" multiple="multiple">
    <option value="abc">Text 1</option>
    <option value="def">Text 2</option>
    <option value="ghi">Text 3</option>
</select>

, если, скажем, выбраны опции 1 и 2.

выбранный массив будет:

selected['abc']=1; 
selected['def']=2.
4 голосов
/ 20 ноября 2015

Код 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>   

Код JQuery:

$('#multiple :selected').each(function(i, sel){ 
    alert( $(sel).val() ); 

});

Надеюсь, что это работает

0 голосов
/ 01 мая 2019

Всего одной строкой -

var select_button_text = $('#SelectQButton option:selected')
                .toArray().map(item => item.text);

Вывод: ["text1", "text2"]

var select_button_text = $('#SelectQButton option:selected')
                .toArray().map(item => item.value);

Вывод: ["value1", "value2"]

Если вы используете .join ()

var select_button_text = $('#SelectQButton option:selected')
                .toArray().map(item => item.text).join();

Вывод: текст1, текст2, текст3

0 голосов
/ 04 июля 2017

Просто используйте это

$('#multipleSelect').change(function() {
    var selectedValues = $(this).val();  
});
0 голосов
/ 20 декабря 2016

Получить выбранные значения через запятую

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);
...