javascript - 如何以编程方式打开 DAL(Django Autocomplete Light)Select2
问题描述
我正在使用 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。
解决方案
我发现该错误是由 autocomplete_light.js 函数初始化引起的,该函数与 document.ready 相关联。尝试访问 document.ready 上的 field.select2 不起作用。我需要一种方法来关注并在页面加载时打开 select2。将发布另一个问题。
推荐阅读
- svg - Safari 以不同的字体呈现 SVG 中的文本
- c - 无法理解链表的定义
- sql - 如何在 CodeIgniter 中使用 JOIN 和 get_where 子句
- laravel - Laravel 中的总计、数量、价格
- excel - VBA:删除某列中有空白的行并在Excel中制作一个按钮
- xslt - 如何在 XSLT 中重新排序标记化列表并一次从中读取两个值?
- objective-c - 从目标成员中删除文件后构建失败
- python - 如何修复“[WinError 5] 访问被拒绝”
- tensorflow - 在 tf.keras.layers 中使用等同于 tf.nn.rnn_cell.DropoutWrapper 的 dropout 包装器
- c# - 如何在 C# 中向 Stimulsoft 发送查询?