如何聚焦于一个Selectize选择框?

13

关注一个具有selectize功能的选框并不会聚焦于被选中的输入框:

$('.someclass select').focus();

专注于selectize自己的输入框似乎也不起作用:

$('.someclass input').focus();

Selectize 文档 提到了 focus,但这似乎也不起作用。请参见此 jsfiddle

var selectized = $('#selectize').selectize();
selectized.focus();

我希望在光标|出现时,文本框可以立即输入。

如何从JavaScript聚焦于selectize选择框,以便用户可以在其中输入?

5个回答

25

你应该使用:

selectized[0].selectize.focus();

1
这对我来说有效,但是点击(click)在被接受的答案中没有起作用。 - connectedsoftware
2
@mike-c 这是Selectize API提供的选项。但是如何访问这些方法有点令人困惑。https://github.com/selectize/selectize.js/blob/master/docs/api.md#methods_other - eriksssss
2
我已经更改了答案,因为根据selectize作者的说法,这是正确的做法,正如你所提到的。 - mikemaccana

7

一个看起来可行的方法是调用click()而不是focus()

$('.someclass input').click();

2

$('.someclass input')返回一个jQuery对象(包装集-请参见jQuery $实际上返回什么?)。您不想要包装集,而是想要与选择器匹配的集合中的第一个元素。

请尝试使用$('.someclass input')[0].selectize.focus();代替。


0

对我来说,$('.someclass input').focus() 就可以了。首先你选择你的 selectize 元素 $('.someclass'),然后你选择只选择该元素的输入框 $('.someclass input'),最后你触发该元素的 focus() 函数。


0
我找到了一个简单的方法:
$("#selectid-selectized").focus(
  function () { 
    $("#selectid")[0].selectize.clear(); 
})

Matthew,请问你可以详细解释一下你的答案,并且在 JS Fiddle 上给出证明吗?例如,为什么那个回调函数能使其正常工作? - bryjohns

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接