通过jquery-select2获取多值选择框的选定值?

71

我正在使用 Select2 Jquery 绑定我的下拉菜单,用于多选。我正在使用 Select2 jquery。

它很好地工作,我可以绑定我的下拉菜单,但我需要从我的多值选择器中获取所选的值。我正在寻找一种由 Select2 Jquery 支持的获取值的方法。可能会有一个名为 "get selected value" 的函数。
我的下拉菜单绑定代码:

$(".leaderMultiSelctdropdown").select2( {
    maximumSelectionSize: 4
});
9个回答

117
alert("Selected value is: "+$(".leaderMultiSelctdropdown").select2("val"));

另外,如果您使用常规的选择框作为基础,您也应该能够使用正常的jQuery调用:

alert("Selected value is: "+$(".leaderMultiSelctdropdown").val());

这两个函数都会返回所选键的数组。


非常感谢@manuFS,您能告诉我如何将选定的值设置为多值选择器吗?我知道这是另一个问题,但如果您能帮忙就太好了。 - Kaps Hasija
4
这段代码意思是在使用名为select2的JavaScript库中,选定一个类名为"leaderMultiSelctdropdown"的下拉菜单,并将其选中值设置为"some"和"keys"。 - Manuel Schweigert
你的第二个并没有返回值...不管怎么说第一个是有效的,这对我来说很好。 - Kaps Hasija
第二个将把值设置为“some”和“keys”,而不是返回它。 - Manuel Schweigert
请查看此链接:https://dev59.com/Dmcs5IYBdhLWcg3wYzH6 - Kaps Hasija
我用什么作为key和some? - Kaps Hasija

40

我知道现在有点晚了,但我认为你可以试试这样做

$("#multipledpdwn").on("select2:select select2:unselect", function (e) {

    //this returns all the selected item
    var items= $(this).val();       

    //Gets the last selected item
    var lastSelectedItem = e.params.data.id;

})

希望将来能对某些人有所帮助。


28
返回以对象形式表示的选定数据的结构。
console.log($(".leaderMultiSelctdropdown").select2('data'));

类似于:

   [{id:"1",text:"Text",disabled:false,selected:true},{id:"2",text:"Text2",disabled:false,selected:true}]

返回所选值:

console.log($('.leaderMultiSelctdropdown').val());
console.log($('.leaderMultiSelctdropdown').select2("val"));

类似这样的内容:

["1", "2"]

11

简单来说:

$(".leaderMultiSelctdropdown").val()

9

试试这样做:

jQuery('.leaderMultiSelctdropdown').select2('data');

1
目前被接受的答案对我无效 - 无论我选择什么,它都只给出了["1","2"]等内容。而这个答案对我来说提供了正确的信息。 - user3413723

4

你应该尝试这段代码。

 $("#multiple_Package_Ids_checkboxes").on('change', function (e) { 
        var totAmt = 0;
        $.each($(this).find(":selected"), function (i, item) { 
            totAmt += $(item).data("price");
            });
        $("#PackTotAmt").text(totAmt);
    }); 

2
这是一个有用的解决方案,适用于多选选项。 - vicky
2
在我看来,这应该是被接受的答案。实际上它是针对数字的,但你也可以轻松地用于文本。 - Brhaka
1
这就是正确的答案。谢谢。 - jovialcore

1
请查看这个简单的示例。您可以在中获取值。
var values = $('#id-select2-multi').val();
console.log(values);

1
尝试这个:

  $('.select').on('select2:selecting select2:unselecting', function(e) {

      var value = e.params.args.data.id;

  });

1
你可能需要详细解释一下为什么这个答案与其他答案不同。 - rene

-3

这将从多值选择框中获取所选值: $(“#id option:selected”).val()


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接