将焦点设置为jQuery UI MultiSelect Widget中的Filter输入

noc*_*ier 3 html javascript jquery multi-select

我正在编写一个小脚本,它将焦点设置到多选jquery小部件的过滤器文本输入字段.根据文档,我可以订阅小部件的click事件,如下所示:

// bind to event
$("#multiselect").bind("multiselectopen", function(event, ui){
    // event handler here
});
Run Code Online (Sandbox Code Playgroud)

所以我尝试了这个:

$("#MyStatusWidget").bind("multiselectopen", function(event, ui){
            // event handler here
            $(this).$(".ui-multiselect-filter").contents('input :text').focus());
        });
Run Code Online (Sandbox Code Playgroud)

以下是该小部件的链接:http: //www.erichynds.com/jquery/jquery-ui-multiselect-widget/

我还尝试了其他一些方法($('').is(':text');等),但无法获得钩子.

这是HTML:

<div class="ui-widget-header ui-corner-all ui-multiselect-header ui-helper-clearfix ui-multiselect-hasfilter">
<div class="ui-multiselect-filter">
Filter:
<input type="search" placeholder="Enter keywords">
</div>
<ul class="ui-helper-reset">
</div>
Run Code Online (Sandbox Code Playgroud)

谢谢

Pyr*_*nci 6

我知道这有点旧,但在我的情况下,我在页面上有很多这些小部件.所以我做了一些与众不同的事情.

$("#MyStatusWidget").multiselect({
    open: function () {
        $(this).multiselect("widget").find("input[type='search']:first").focus();               
    }
});
Run Code Online (Sandbox Code Playgroud)


Jus*_*rke 5

创建多选小部件时,只需添加以下"打开"方法即可.

$("#MyStatusWidget").multiselect({
    open: function () {
        $("input[type='search']:first").focus();                   
    }
});
Run Code Online (Sandbox Code Playgroud)

对于IE10 bowser:

$("#MyStatusWidget").multiselect({
    open: function () {
        $("input[type='text']:first").focus();                   
    }
});
Run Code Online (Sandbox Code Playgroud)