select2强制关注页面加载

use*_*976 49 jquery jquery-select2

我试图让select2框在页面加载时出现在焦点状态.我尝试过以下方法:

$('#id').select2('focus');
$('#id').trigger('click');
$('#id').trigger('focus');
Run Code Online (Sandbox Code Playgroud)

只有第一行似乎有任何效果,它确实关注select2字段,但它需要一个额外的按键来显示搜索字段,并允许键入搜索字符串.

因此,如果您加载页面并开始键入:"搜索","S"将打开搜索框,然后其余的键将输入其中,因此您将搜索"earch"

Dan*_*lan 118

根据Select2文档:

$('#id').select2('open');
Run Code Online (Sandbox Code Playgroud)

应该是你所需要的一切.

文档中Programmatic Access部分下找到.

  • $( '#ID')选择2( '开放').将设置焦点并打开select2准备搜索.$( '#ID')选择2( '焦点').将焦点设置为select2但不会将select2打开以进行搜索. (16认同)

kea*_*gik 29

这适用于3.4.2版.不确定它何时完全实现.

$('#id').select2('focus');
Run Code Online (Sandbox Code Playgroud)

  • 我在文档中找不到这个!非常感谢您分享这个! (2认同)

Mot*_*tie 10

Select2创建自己的输入,所以尝试这样的事情:

$(window).load(function(){
  $('#id').prev('.select2-container').find('.select2-input').focus();
});
Run Code Online (Sandbox Code Playgroud)


Ral*_*sen 8

如果您使用:

$('#id').select2('open');
Run Code Online (Sandbox Code Playgroud)

select2已打开,您可以直接键入进行搜索.

如果您使用:

$('#id').select2('open').select2('close');
Run Code Online (Sandbox Code Playgroud)

焦点设置为创建的select2下拉列表.如果按EnterCtrl + Arrow down键盘,可以打开它.

个人认为这比以下更好:

$('#id').select2('focus');
Run Code Online (Sandbox Code Playgroud)

因为你无法用键盘真正打开select2下拉列表.


Elo*_*ito 5

这对我有用,它还将闪烁的光标放在输入字段中。顺序很重要!

$('#s2id').select2('focus');
$('#s2id').select2('open');
Run Code Online (Sandbox Code Playgroud)