2012-06-23 148 views
6

我在下面使用流行的JQuery自動完成插件。輸入jquery自動完成觸發器下拉:焦點

http://jqueryui.com/demos/autocomplete/

目前,如果你輸入一個詞組下拉出現,但是當你點擊即可它隱藏。這可以。然而,只能在輸入字段中單擊並鍵入更多字符或按下keydown,才能使下拉菜單恢復正常。

有關如何在用戶單擊輸入字段時觸發下拉結果的任何想法?我試圖觸發輸入字段的焦點事件,但這不起作用。當注意到輸入字段時,我需要手動調用autocomplete下拉事件。謝謝。

回答

24

工作演示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"); }); 
+1

謝謝這個漂亮的作品 – leejmurphy

+1

太棒了!發現這從谷歌,正是我需要:) – Tallboy

+1

甜!正是我需要的!奇蹟般有效! –

2

根據文檔沒有明顯的方法。但是你可以與focus(或clickkeyup)事件試試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 

DEMO

+0

++ 1再次男子':)'很高興,這些天我不厄運-ING與你的解決方案:下面P DIFF演示了OP無論如何+! –

+0

謝謝,這兩個組合爲我工作。 – leejmurphy