7

我在我的表单中使用 select2 插件,我services_dd在页面上有一个带有 class 的链接.js-autoselect。单击此按钮时,我想获取该链接标签的 ID,并根据他们单击的按钮更改 select2 选项。

<option>value 属性与链接上 id 的属性相匹配。下面的代码成功更改了值,但 select2 没有更新,它仍然显示第一个选择。

$('.js-autoselect').click(function(e){
    e.preventDefault();
    var option = $(e.target).attr('id').trim().toLowerCase(); // option =link1

    $('#services_dd option:selected').val(option);
    alert($('#services_dd option:selected').val()); // this alerts link1 which is correct

});

有谁知道如何更新select2

4

4 回答 4

19

$("#services_dd").select2("val", option);

请参阅文档的编程访问部分:http: //ivaynberg.github.com/select2/#documentation

于 2012-12-21T09:27:31.413 回答
1

工作示例

根据@scoota269 的回答,我编写了以下 JS Fiddle 来显示此功能:https ://jsfiddle.net/robertmassaioli/ro2279ts/5/

那应该能够帮助您了解如何进行这项工作。

代码

以防万一 JS Fiddle 被关闭:

$(function() {
    var select = $("#the-select");
    select.select2();

    $("#update").click(function() {
        // How to remove a value
        select.find("option[value=1]").remove();
        // How to add a value
        select.append("<option value='5'>Five</option>");
        select.select2();
    });

    $("#select").click(function() {
        // How to select a value
        var current = select.select2("val");
        current = current || [];
        current.push(2);
        select.select2("val", current);
    });
});
于 2015-06-06T04:37:54.017 回答
0
$('#mySelect2').val('US'); // Change the value or make some change to the internal state
$('#mySelect2').trigger('change.select2'); // Notify only Select2 of changes
于 2021-11-13T13:16:48.867 回答
-2

我认为你应该简单地做

$('#services_dd').val(option);
alert($('#services_dd').val());

否则,在您的代码中,您只会更改所选选项的 value 属性(而不是 select 元素的值)。

于 2012-12-21T09:28:37.550 回答