我正在尝试在页面加载时将select2框显示为其聚焦状态。 我已尝试以下内容:
$('#id').select2('focus');
$('#id').trigger('click');
$('#id').trigger('focus');
只有第一行似乎有任何效果,并且它确实聚焦了select2字段,但是它需要额外的按键才能显示搜索字段,并允许输入搜索字符串。
因此,如果您加载页面并开始输入:"搜索",则"S"将打开搜索框,然后剩余的键将输入其中,因此您将搜索"earch"。
我正在尝试在页面加载时将select2框显示为其聚焦状态。 我已尝试以下内容:
$('#id').select2('focus');
$('#id').trigger('click');
$('#id').trigger('focus');
只有第一行似乎有任何效果,并且它确实聚焦了select2字段,但是它需要额外的按键才能显示搜索字段,并允许输入搜索字符串。
因此,如果您加载页面并开始输入:"搜索",则"S"将打开搜索框,然后剩余的键将输入其中,因此您将搜索"earch"。
$('#s2id_autogen1').click()
$('#s2id_autogen1').focus()
虽然Dan-Nolan已经回答得很好了,但对于那些新手来说,需要注意一点:在调用Select2函数之前,需要使用select2初始化html对象:
因此最终代码应该是:
$('#id').select2();
$('#id').select2('open');
$(document).on('select2:open', () => {
document.querySelector('.select2-container--open .select2 search__field').focus();
});
或者
$(document).on('select2:open', () => {
document.querySelector('.select2-search__field').focus();
});
$('#id').select2('open');
$('#id').select2('close');