在Select2 v4中获取选定的值

时间:2016-07-18 06:47:08

标签: jquery jquery-select2

此问题专门针对Select2 v4

如何为Value下拉列表选择Select2

我尝试了以下内容:

jQuery('#Dropdown').val()

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

并且似乎都没有给我所选元素的值。我确保在运行此代码时有一个选定的项目。

6 个答案:

答案 0 :(得分:2)

select2不提供任何直接方法来获取选定的选项属性值。您需要在select2中选择选项元素,然后找到其属性ID:

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

可以缩小为:

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

答案 1 :(得分:1)

试试这个:

$('#Dropdown').select2('data')[0].text;

答案 2 :(得分:0)

如果你有这样的选择:

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

和&#34;选项1&#34;项目已被选中。

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

然后$select.val()将返回&#34; 1&#34;你的价值。

答案 3 :(得分:0)

如果您真正感兴趣的是值而不是id,为什么不将id值设置为与值相同的值 - 因为每个值都是唯一的。

然后你可以简单地做 -

jQuery('#Dropdown').val()

返回id,但由于我们的id与value相同,因此我们获取值并将其用于进一步处理。

注意我的选择是一个输入 -

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

和dataSet是像

这样的元素数组
[
{id: "value1", text: "value1"},
{id: "value2", text: "value1", selected: "selected"}
]

答案 4 :(得分:0)

Select2提供了一个onselect事件,您可以在其中传递事件参数,从中可以派生选定的选项。

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

然后您可以先做if event.params.data.id == "your_target_id",然后再做某事

答案 5 :(得分:0)

<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

在select2('data')之后通知[0]吗?

在Select2 v2上,不需要它$('#Dropdown')。select2('data')。text;

Select2 v4返回一个名为结果的对象数组,因此需要添加[0]