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

Javascript 加载数据后从Select2获取项目,javascript,jquery,jquery-select2,Javascript,Jquery,Jquery Select2,我试图强制使用open方法并使用select2选择item,如下所示 $(".select").select2('open') $(".select").on('select2-loaded', function (e) { items = e.items.results; if (items.length == 1) { $(this).val(items[0].text); } }); $

我试图强制使用open方法并使用select2选择item,如下所示

    $(".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加载的评估,quick也在接近尾声。如果列表中只有一个元素,我想默认选择第一个元素

当“打开”发生时,它会自动执行获取和加载列表中所有元素的机制。如果我对close方法进行注释,则显示列表中的元素需要几毫秒的时间

但是我想要的是刷新我的列表(这是由open完成的),然后我只想在有一个元素和closemylist('select')时进行选择


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

您应该在
select2 loaded
事件中移动
close
调用,这样它只会在选择项目后关闭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');
    }
});

您使用的是select2的哪个版本?此版本:选择2-3.5.1谢谢您的回答。这将加载“我的选择”列表,然后自动选择元素(如果只有一个),然后关闭列表。但是,无论何时,只要我点击被另一个过滤的同一个选择,它就不允许再次打开它,无论它有一个元素还是多个元素。它总是关闭选择按钮。你知道如何避免这种行为吗?无论何时单击select,它都会引发select2 loaded并结束关闭。我想区分这个选择是被另一个选择过滤的还是被我点击时过滤的。你说得对。我已经编辑了我的答案,并在
if(..==1)
语句中移动了结束符,因此它只会在只有1项时关闭。我已经这样做了。但现在,如果有多个元素,它就永远不会关闭并保持打开状态。其思想是设置值,我调用“open”,因为该方法引发刷新select的数据的操作。可能还有另一种方法可以刷新数据(类似于打开)并在需要时选择值。基于此,您可以尝试在
打开后添加下一行:
$(“.select”)。选择2({data:fromAccountData})