保持ui自动完成始终打开

You*_*uss 11 jquery jquery-ui autocomplete

我正在使用ui自动完成:在这里

我需要始终打开自动完成功能,因此在单击身体某处时不应该关闭它.我用Google搜索了这个,但我找不到任何东西.

Dom*_*Dom 33

嘿抱歉迟到了!

我觉得这比关注输入和多次搜索更加清晰.

试试这个...

JAVASCRIPT:

$( "#input1" ).autocomplete({
    source: availableTags,
    close : function (event, ui) {
        if (!$("ul.ui-autocomplete").is(":visible")) {
            $("ul.ui-autocomplete").show();
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

演示:http: //jsfiddle.net/dirtyd77/AJtvJ/

希望这可以帮助!

  • 比每次执行ajax调用要好得多 (3认同)

Mou*_*hna 14

这是一个如何做到的工作示例:http://jsfiddle.net/4pk3V/

每当触发关闭事件时,通过再次搜索相同的输入来保持自动完成框打开:

$( "#input" ).autocomplete({
    source: availableTags,

    close : function (event, ui) {
         val = $("#comment").val();
         $("#input").autocomplete( "search", val ); //keep autocomplete open by 
         //searching the same input again
         $("#input").focus();
        return false;  
    }
});
Run Code Online (Sandbox Code Playgroud)

  • 删除`$("#comment").focus();`仍然保持自动完成打开,并允许用户实际选择另一个元素. (2认同)

小智 7

还有一个CSS选项:

<style>
    .ui-autocomplete { display: inline-block !important; }
</style>
Run Code Online (Sandbox Code Playgroud)

示例: http ://jsfiddle.net/Monstermensch/G7YYZ/1/


您还应该添加以下代码以避免在调整浏览器大小时出现问题(源:在浏览器调整大小时重新定位jQuery UI自动完成):

$(window).resize(function () {
    $("#input1").autocomplete("search");
});
Run Code Online (Sandbox Code Playgroud)