我正在使用ui自动填充功能:over here
我需要始终打开自动完成功能,因此在单击身体某处时不应关闭。我用Google搜索了这个,但我找不到任何东西。
答案 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();
});