2015-07-11 76 views
0

我無法弄清楚如何動態填充輸入的自動完成列表。這裏是一些測試代碼:jQuery的:輸入填充自動完成聚焦

<input id="AnlNr"> 

[....] 

var AnlNrTags = ["five","six","seven","eight"]; 

jQuery("#AnlNr") 
    .autocomplete({ 
     source: AnlNrTags, 
     } 
    }) 

    .focus(function() { 
     AnlNrTags = ["one","two","three","four"]; 
    }); 

自動填充填充「五」,「六」,「七」,「八」。好。現在,當輸入焦點時,我希望它是「一個」,「兩個」,「三個」,「四個」,但自動完成選擇仍然像以前一樣。似乎自動完成小部件不是爲了在初始化後重新評估自動完成源而設計的。

我怎樣才能改變我的.focus名單autoselection?

Thx

Alina。

+0

'看看這個'http://stackoverflow.com/questions/4132058/display-jquery-ui-auto-complete-list-on-focus-event –

回答

1

要改變初始化之後,將自動完成的source財產,你需要與option財產叫它。試試這個:

.focus(function() { 
    AnlNrTags = [ "one", "two", "three", "four" ]; 
    jQuery("#AnlNr").autocomplete('option', 'source', AnlNrTags); 
}) 

Example fiddle

請注意,你的模式是有點過。監守你儘快改變sourceinput元素的重點是指第一組選項fivesix等不會被搬上銀幕。

+0

Jep,這正是我的樣本應該顯示的。在.focus處理程序中分配的新值從不會將其置於自動完成列表中。感謝您的示例代碼,看起來非常有希望,今晚將嘗試它。 – Alina85

+0

非常好,謝謝你! – Alina85

0

試試這個,

$(function() { 
    $('#in1').autocomplete({ 
     source: ["five","six","seven","eight"], 
     minLength: 0 
    }).focus(function(){ 
     var newtag = [ "one", "two", "three", "four" ]; 
     $("#in1").autocomplete('option', 'source', newtag);   
     $("#in1").data("autocomplete").search($(this).val()); 
    }); 
}); 

DEMO

Look into second demo where merging both values.DEMO-2