Javascript 加载数据后从Select2获取项目
我试图强制使用open方法并使用select2选择item,如下所示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); } }); $
$(".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})代码>