首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Jquery-Select2的多值选择中设置选定值?

如何在Jquery-Select2的多值选择中设置选定值?
EN

Stack Overflow用户
提问于 2012-10-15 13:04:29
回答 15查看 245.1K关注 0票数 64

我正在将我的下拉列表与Jquery-Select2绑定。它工作得很好,但现在我需要使用Jquery-Select2绑定我的多值selectBox

我的DropDown

代码语言:javascript
复制
<div class="divright">
  <select
    id="drp_Books_Ill_Illustrations"
    class="leaderMultiSelctdropdown Books_Illustrations"
    name="drp_Books_Ill_Illustrations"
    multiple=""
  >
    <option value=" ">No illustrations</option>
    <option value="a">Illustrations</option>
    <option value="b">Maps</option>
    <option value="c">Portraits</option>
  </select>
</div>

从这个链接http://ivaynberg.github.com/select2/我正在使用多值选择框,我可以绑定我的下拉列表

代码语言:javascript
复制
$("dropdownid").Select2()

它工作得很好,但现在我需要将选定的值放入编辑模式的下拉列表中,所以我使用了这个示例:

代码语言:javascript
复制
$(".Books_Illustrations").select2("val", ["a", "c"]);

它是有效的,但我如何才能修复我的选择,因为用户可以选择任何东西。所以我不能静态地写a,c,这就是为什么我需要在编辑模式下动态绑定我的选定值。

我想现在你们都清楚我的要求了。如果你需要进一步的许可,请告诉我。

EN

回答 15

Stack Overflow用户

回答已采纳

发布于 2012-10-24 23:10:10

实际上你只需要$.each来获取所有的值,它将帮助你jsfiddle.net/NdQbw/5

代码语言:javascript
复制
<div class="divright">
            <select id="drp_Books_Ill_Illustrations" class="leaderMultiSelctdropdown Books_Illustrations" name="drp_Books_Ill_Illustrations" multiple="">
                <option value=" ">No illustrations</option>
                <option value="a" selected>Illustrations</option>
                <option value="b">Maps</option>
                <option value="c" selected>selectedPortraits</option>
            </select>
    </div>

<div class="divright">
        <select id="drp_Books_Ill_Illustrations1" class=" Books_Illustrations" name="drp_Books_Ill_Illustrations" multiple="">
            <option value=" ">No illustrations</option>
            <option value="a">Illustrations</option>
            <option value="b">Maps</option>
            <option value="c">selectedPortraits</option>
        </select>
</div>

<button class="getValue">Get Value</button>
<button  class="setValue"> Set  value </button>

<div class="divright">
        <select id="drp_Books_Ill_Illustrations2" class="leaderMultiSelctdropdown Books_Illustrations" name="drp_Books_Ill_Illustrations" multiple="">
            <option value=" ">No illustrations</option>
            <option value="a" selected>Illustrations</option>
            <option value="b">Maps</option>
            <option value="c" selected>selectedPortraits</option>
        </select>
</div>

<div class="divright">
        <select id="drp_Books_Ill_Illustrations3" class=" Books_Illustrations" name="drp_Books_Ill_Illustrations" multiple="">
            <option value=" ">No illustrations</option>
            <option value="a">Illustrations</option>
            <option value="b">Maps</option>
            <option value="c">selectedPortraits</option>
        </select>
</div>

<button class="getValue1">Get Value</button>
<button  class="setValue1"> Set  value </button>

脚本:

代码语言:javascript
复制
 var selectedValues = new Array();
    selectedValues[0] = "a";
    selectedValues[1] = "c";

$(".getValue").click(function() {
    alert($(".leaderMultiSelctdropdown").val());
});
$(".setValue").click(function() {
   $(".Books_Illustrations").val(selectedValues);
});

$('#drp_Books_Ill_Illustrations2, #drp_Books_Ill_Illustrations3').select2();


$(".getValue1").click(function() {
    alert($(".leaderMultiSelctdropdown").val());
});

$(".setValue1").click(function() {
    //You need a id for set values
    $.each($(".Books_Illustrations"), function(){
            $(this).select2('val', selectedValues);
    });
});
票数 67
EN

Stack Overflow用户

发布于 2018-03-03 03:31:38

我知道这篇文章很旧,但现在select2的工作方式已经发生了变化,这个问题的答案非常简单。

要设置多select2中的值,请执行以下操作

代码语言:javascript
复制
$('#Books_Illustrations').val([1,2,3]).change();

在jquery中不再需要指定.select2,只需指定.val即可。

此外,有时您可能不想触发change事件,因为您可能有一些其他代码要执行,这就是使用上面的方法时会发生的事情,这样您就可以在不触发change事件的情况下更改值,如下所示

代码语言:javascript
复制
$('#Books_Illustrations').select2([1,2,3], null, false);

如果这不起作用,您也可以这样做,以不触发更改事件

代码语言:javascript
复制
$('#Books_Illustrations').select2();
$('#Books_Illustrations').val('some_value');
票数 34
EN

Stack Overflow用户

发布于 2012-10-19 18:09:06

所以我认为你想默认选择2个选项,然后得到它的值?如果是这样的话:

http://jsfiddle.net/NdQbw/1/

代码语言:javascript
复制
<div class="divright">
    <select id="drp_Books_Ill_Illustrations" class="leaderMultiSelctdropdown Books_Illustrations" name="drp_Books_Ill_Illustrations" multiple="">
        <option value=" ">No illustrations</option>
        <option value="a" selected>Illustrations</option>
        <option value="b">Maps</option>
        <option value="c" selected>selectedPortraits</option>
    </select>
</div>

并获得价值:

代码语言:javascript
复制
alert($(".leaderMultiSelctdropdown").val());

要设置值,请执行以下操作:

代码语言:javascript
复制
 $(".leaderMultiSelctdropdown").val(["a", "c"]);

您还可以使用数组来设置值:

代码语言:javascript
复制
var selectedValues = new Array();
selectedValues[0] = "a";
selectedValues[1] = "c";

$(".Books_Illustrations").val(selectedValues);

http://jsfiddle.net/NdQbw/4/

票数 22
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12889552

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档