Javascript 如果在页面加载时下拉列表中只有一个选项,则在jquery select2中自动选择该选项,而不单击它

Javascript 如果在页面加载时下拉列表中只有一个选项,则在jquery select2中自动选择该选项,而不单击它,javascript,jquery,jquery-select2,Javascript,Jquery,Jquery Select2,我编写了以下select2代码: 现在我想做的是,如果ajax调用返回的选项只有一个,那么我应该自动选择该选项,如果该选项大于一,那么用户可以通过单击来选择所需的选项。 对于单个选项,我希望在不单击的情况下自动选择它。当我控制台记录processResults时,它仅在单击下拉菜单时被调用,而不是在加载显示该下拉菜单的页面小部件时被调用。 如何获得所需的结果?由于我无法找到在页面加载时触发单击select2的方法,我的解决方案是在页面加载时或在函数中调用包含select2的小部件时添加这些行:

我编写了以下select2代码:

现在我想做的是,如果ajax调用返回的选项只有一个,那么我应该自动选择该选项,如果该选项大于一,那么用户可以通过单击来选择所需的选项。 对于单个选项,我希望在不单击的情况下自动选择它。当我控制台记录processResults时,它仅在单击下拉菜单时被调用,而不是在加载显示该下拉菜单的页面小部件时被调用。
如何获得所需的结果?

由于我无法找到在页面加载时触发单击select2的方法,我的解决方案是在页面加载时或在函数中调用包含select2的小部件时添加这些行:

$('#dropdownElem').select2('open');
$('#dropdownElem').select2('close');
因此,由于我正在检查processResults中选项的长度,我必须在下拉列表中触发单击并关闭功能。
select2的打开和关闭方法与我的用例几乎相同。

根据processResults:是转换结果的正确位置-这将在ajax请求后调用-但在激活下拉列表之前不会调用ajax请求-因此您在问题中找错了位置,但是标题看起来似乎是正确的想法-可能会更新问题以匹配标题?select2还有一个建议,它似乎建议您只需在加载时进行初始ajax调用以预填充下拉列表:相同的问题,但不是真正有用的答案,只是说不能这样做是的。我在打字时漏掉了$。所以根据你的第二条评论,我想我应该触发单击,然后选择该选项,如果我没有错的话,然后关闭下拉列表。
$('#dropdownElem').select2('open');
$('#dropdownElem').select2('close');