【发布时间】:2021-07-22 22:59:51
【问题描述】:
我正在使用 DAL 从这样的表单字段中呈现自动完成功能:
search = forms.ChoiceField(
widget=autocomplete.Select2(
url='/search/my_search/',
attrs={
'data-placeholder': 'Select an option',
'data-minimum-input-length': 1,
'data-theme': 'bootstrap4',
})
)
它使用这个类渲染:“select2-hidden-accessible”并获得这个属性“data-autocomplete-light-function="select2"。 它没有得到“select2”类,它被赋予了它的一个跨度。 一切正常,除了我无法以编程方式打开 select2。
我试过了:
$('#id_search').select2('open')
但它给出了错误:“在未使用 Select2 的元素上调用了 select2('open') 方法。”,因为 DAL 没有将类“select2”传递给呈现的表单字段“id_search” . 由于某些特殊性,我无法手动将类传递给组件。 如果我单击该字段,它会打开并正常工作。
我需要一些帮助才能在页面加载时打开 select2。
【问题讨论】:
-
你能做到
$('#id_search').addClass('select2').select2('open')吗?可能是添加所需课程的最快方法。您可能还需要先不带参数地调用.select2();我不记得 select2 是如何直接工作的。 -
我发现错误发生是因为 autocomplete.js 尚未加载到“$(document).ready()”上。我怎么知道它已经被初始化了?
标签: javascript django jquery-select2 django-autocomplete-light