这在焦点时直接调用具有默认值的搜索方法.
http://jsfiddle.net/steelywing/ubugC/
$("input").autocomplete({ source: ["Apple", "Boy", "Cat"], minLength: 0, }).focus(function () { $(this).autocomplete("search"); });
使其不止一次工作的解决方案
看起来您将focus()
处理程序附加到匿名函数而不是文本框.
试试这个:
digitalPBK差不多......
他的解决方案不止一次工作,但是当您通过鼠标单击从列表中选择项目时,不会关闭下拉列表.在这种情况下,焦点会在您执行单击时返回到控件,因此在应该关闭它时会重新打开列表.
这是一个修复,它是唯一适用于我的方式,我认为它应该在使用autocomplete()函数的最新版本(1.8.11)时起作用.当控件获得焦点时,如果已经显示了下拉列表,则它不会显示全部焦点...
$(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 });
使用最新版本时,您可能需要将自动完成功能更改为uiAutocomplete
$(this).data("uiAutocomplete").search($(this).val());