当前位置:  开发笔记 > 编程语言 > 正文

在焦点事件上显示jquery ui自动完成列表

如何解决《在焦点事件上显示jqueryui自动完成列表》经验,为你挑选了6个好方法。



1> Steely Wing..:

这在焦点时直接调用具有默认值的搜索方法.

http://jsfiddle.net/steelywing/ubugC/

$("input").autocomplete({
    source: ["Apple", "Boy", "Cat"],
    minLength: 0,
}).focus(function () {
    $(this).autocomplete("search");
});


如果要在焦点上显示所有项目,即使已经输入包含一些文本,也要使用$(this).autocomplete("search","").

2> digitalPBK..:

使其不止一次工作的解决方案



在[API文档](http://api.jqueryui.com/autocomplete/#method-search)中建议使用`$(this).autocomplete("search")`
使用jQuery UI 1.10.0进行测试需要使用`.data("uiAutocomplete")`而不是`.data("autocomplete")`

3> Codesleuth..:

看起来您将focus()处理程序附加到匿名函数而不是文本框.

试试这个:



@Aman:我们都有那些时刻,很高兴我能帮忙:)
有谁曾经弄清楚如何不止一次地完成这项工作?我刚刚意识到我发布了一个类似的问题:http://stackoverflow.com/questions/8206603/how-to-make-jquery-autocomplete-list-display-all-options-onfocus-and-hide-after

4> C.List..:

digitalPBK差不多......

他的解决方案不止一次工作,但是当您通过鼠标单击从列表中选择项目时,不会关闭下拉列表.在这种情况下,焦点会在您执行单击时返回到控件,因此在应该关闭它时会重新打开列表.

这是一个修复,它是唯一适用于我的方式,我认为它应该在使用autocomplete()函数的最新版本(1.8.11)时起作用.当控件获得焦点时,如果已经显示了下拉列表,则它不会显示全部焦点...




5> Ji_in_coding..:

$(this).trigger('keydown.autocomplete'); 对我不起作用.

这就是我做的:

$('#id').on( "focus", function( event, ui ) {
    $(this).trigger(jQuery.Event("keydown"));
   // Since I know keydown opens the menu, might as well fire a keydown event to the element
});



6> Jonny..:

使用最新版本时,您可能需要将自动完成功能更改为uiAutocomplete

$(this).data("uiAutocomplete").search($(this).val());

推荐阅读
手机用户2502851955
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有