尝试在页面加载时打开 select2 会出现错误“在未使用 Select2 的元素上调用了 select2('open') 方法”

问题描述

尝试使用 document.ready 在页面加载时打开 select2 不起作用,因为“autocomplete_light.js 初始化函数”与同一事件相关联,并且在 document.ready 时,组件尚未初始化。

所以,下面的做法是行不通的:

$(document).ready(function () {
    $('#select2_field').select2('open')
    //OR
    $('#select2_field').open()
});

问题是 django autocomplete_light 也初始化了 document.ready 上的字段。我需要打开并将该字段集中在页面加载上,同样的事件。当我尝试这样做时,它给出了错误:在未使用 Select2 的元素上调用了 select2('open') 方法。如果我在另一个事件上访问该方法,则在 document.ready 之后,它会起作用。

那么,问题是,在通过自动完成灯初始化之后,如何在页面加载时打开 select2?自动完成灯没有任何我可以使用的回调。

解决方法

在DAL github页面发布问题后,我被引导添加元素初始化后的事件通知并自己打开拉取请求。

我已经完成了,现在我正在等待它被接受。

https://github.com/yourlabs/django-autocomplete-light/pull/1246