保持ui自动完成始终打开

时间:2012-02-05 11:54:35

标签: jquery jquery-ui autocomplete

我正在使用ui自动填充功能:over here

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

4 个答案:

答案 0 :(得分:32)

对于迟到的回复抱歉!

我觉得这比关注输入和多次搜索要清晰得多。

试试这个......

JAVASCRIPT:

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

样本: http://jsfiddle.net/dirtyd77/AJtvJ/

希望这有帮助!

答案 1 :(得分: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;  
    }
});

答案 2 :(得分:7)

还有一个仅限CSS的选项:

<style>
    .ui-autocomplete { display: inline-block !important; }
</style>

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


您还应添加以下代码,以避免在调整浏览器大小时出现问题(来源:Repositioning jQuery UI Autocomplete on browser resize):

$(window).resize(function () {
    $("#input1").autocomplete("search");
});

答案 3 :(得分:0)

这里是替代解决方案: 将以下配置添加到$input.autocomplete

close: function (event, ui) {
  $input.autocomplete('widget').show();
}

要关闭菜单,您需要添加一个单击离开处理程序。 我发现最简单的方法是:

$input.on('blur', function () {
  $input.autocomplete('widget').hide();
});