加载数据后,从Select2获取项目

时间:2015-09-01 15:35:49

标签: javascript jquery jquery-select2

我正在尝试强制使用open方法,并选择select2这样的项目。

    $(".select").select2('open')
    $(".select").on('select2-loaded', function (e) {
        items = e.items.results;
        if (items.length == 1) {
            $(this).val(items[0].text);
        }
    });
    $(".select").select2('close');

但是我无法进入select2加载的评估,并且关闭也发生在快速。如果列表中只有一个元素,我想默认选择第一个元素。

当'open'发生时,它会自动执行获取和加载列表中所有元素的机制。如果我评论close方法,则显示列表中的元素需要几毫秒。

但我想要的是刷新我的列表(这是通过打开完成)然后我想只选择是否有一个元素和关闭我的列表('select')

我怎样才能做到这一点?此行为将由另一个列表的onchange事件触发。 (嵌套选择)

1 个答案:

答案 0 :(得分:7)

您应该在close事件中移动select2-loaded调用,因此它只会在选择项目后关闭select元素。否则你正在打开,为将来的事件设置事件,然后立即关闭。

$(".select").select2('open')
$(".select").on('select2-loaded', function (e) {
    items = e.items.results;
    if (items.length == 1) {
        $(this).val(items[0].text);
        $(".select").select2('close');
    }
});