我正在使用下面流行的 JQuery Autocomplete 插件。
http://jqueryui.com/demos/autocomplete/
目前,如果您键入一个短语,则会出现下拉菜单,但当您点击离开时,它会隐藏。这可以。但是,恢复下拉菜单的唯一方法是单击输入字段并输入更多字符或按下 keydown。
当用户单击输入字段时如何触发结果下拉列表的任何想法?我试图触发输入字段的焦点事件,但这不起作用。当输入字段聚焦时,我不知何故需要手动调用自动完成下拉事件。谢谢。
我正在使用下面流行的 JQuery Autocomplete 插件。
http://jqueryui.com/demos/autocomplete/
目前,如果您键入一个短语,则会出现下拉菜单,但当您点击离开时,它会隐藏。这可以。但是,恢复下拉菜单的唯一方法是单击输入字段并输入更多字符或按下 keydown。
当用户单击输入字段时如何触发结果下拉列表的任何想法?我试图触发输入字段的焦点事件,但这不起作用。当输入字段聚焦时,我不知何故需要手动调用自动完成下拉事件。谢谢。
工作演示 http://jsfiddle.net/CNYCS/
凉爽的; 因此,您需要做的就是使用自动完成来bind
聚焦事件,其余的自动完成将从那里接管,正如您在演示中看到的那样。
有用的链接:http: //forum.jquery.com/topic/how-to-bind-focus-input-to-trigger-autocomplete & http://docs.jquery.com/UI/Autocomplete#method-search
希望这可以帮助,
其余代码在 jsfiddle 中。
代码
$( "#tags" ).autocomplete({
source: availableTags,
minLength:0
}).bind('focus', function(){ $(this).autocomplete("search"); } );
根据文档,没有明显的方法可以这样做。但是您可以尝试在enabled上使用focus
(or click
or keyup
) 事件:autocomplete
textbox
$('#autocomplete').trigger("keyup");
或者
$('#autocomplete').trigger("focus");
或者
$('#autocomplete').trigger("click");
正如@Tats_innit提到的代码,之后您只需添加该行
$('#tags').trigger("focus"); // as @Tats_innit's solution bind focus
// so you need to trigger focus
添加到上面给出的代码。在我的情况下,availableTags 是从服务器值加载的。因此,我只想在值为空白的情况下打开弹出窗口 - 这为服务器节省了不必要的触发器,以便再次在焦点上加载标签。
$( "#tags" ).autocomplete({
source: availableTags,
minLength:0
}).bind('focus', function () {
if ($(this).val().length == 0) {
$(this).autocomplete("search", "");
}
});