Получить выбранное значение в Select2 v4

jquery jquery-select2

6455 просмотра

6 ответа

9990 Репутация автора

Этот вопрос специально направлен на Select2 v4

Как мне выбрать выбранное Valueдля Select2выпадающего списка?

Я пробовал следующее:

jQuery('#Dropdown').val()

jQuery('#Dropdown').select2().val()

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

Автор: Zapnologica Источник Размещён: 18.07.2016 06:47

Ответы (6)


2 плюса

71623 Репутация автора

select2 не предоставляет прямого метода для получения значений атрибутов выбранных опций. Вам нужно получить выбранный элемент option в select2, а затем найти его атрибут ID:

jQuery('#Dropdown').select2().find(":selected").attr("id");

которые можно сузить до:

jQuery("#Dropdown :selected").attr("id");
Автор: Milind Anantwar Размещён: 18.07.2016 06:52

0 плюса

5850 Репутация автора

если у вас есть такой выберите:

<select class="select2-hidden-accessible" data-placeholder="Select a value" tabindex="-1" aria-hidden="true">
  <option></option>
  <option value="1">Option 1</option>
</select>

и пункт «Вариант 1» выбран.

var $select = $(".select2").parent().find("select"); // it's <select> element
var value = $select.val(); 

Затем $select.val()вернет значение «1» для вас.

Автор: Shrike Размещён: 20.07.2016 06:04

1 плюс

29 Репутация автора

Попробуй это:

$('#Dropdown').select2('data')[0].text;
Автор: plectranthus Размещён: 08.01.2017 11:38

0 плюса

46513 Репутация автора

Если все, что вас действительно интересует, это значение, а не идентификатор, почему бы не установить значение идентификатора, равное значению вашего значения, поскольку каждое значение в любом случае уникально.

Тогда вы можете просто сделать -

jQuery('#Dropdown').val()

который возвращает идентификатор, но так как наш идентификатор совпадает со значением, мы получаем значение и используем его для дальнейшей обработки.

Обратите внимание, мой выбор является входом -

<input class="text" type="text" name="select"  id="select">
$("#select").select2({
    data : dataSet
});

и dataSet является массивом элементов, таких как

[
{id: "value1", text: "value1"},
{id: "value2", text: "value1", selected: "selected"}
]
Автор: Aniket Thakur Размещён: 10.12.2017 04:33

0 плюса

134 Репутация автора

Select2 предоставляет onselectсобытие, в котором вы можете передать аргумент события, из которого может быть получена выбранная опция.

$('.selectSports').on('select2:select', function(event) {
    event.params.data // returns you the selected item.
});

Вы можете тогда сделать что- if event.params.data.id == "your_target_id"то сделать

Автор: remonses Размещён: 31.08.2018 01:25

0 плюса

3614 Репутация автора

<select id="Dropdown">
    <option id="1">Value 1</option>
    <option id="2">Value 2</option>
</select>

$('#Dropdown').select2('data')[0].id; //to get the id
$('#Dropdown').select2('data')[0].text; //to get the value

Обратите внимание на [0] после select2 ('data')?

На Select2 v2 это не нужно, это $ ('# Dropdown'). Select2 ('data'). Text;

Select2 v4 возвращает массив объектов с именем results , поэтому необходимо добавить [0]

Автор: Adrian P. Размещён: 23.01.2019 02:53
Вопросы из категории :
32x32