jQuery UI自动完成刷新数据

我使用jQuery ui自动完成function。

var colors; $(document).ready(function(){ loadColors(); $('#empf').autocomplete(colors); } function loadColors(){ colors = new Array(getNumColor()); //in a loop save the colors to array using colors[i] = ... } function addColor(){ ... color[n] = color; } 

当用户输入新颜色时,它将保存到颜色数组中。 我切换到自动完成表单,但在刷新页面之前输入的数据不可用。

任何想法如何使自动完成的新颜色可用?

更新颜色时,还需要更新自动完成使用的源 ,如下所示:

 function addColor() { //add colors $('#empf').autocomplete("option", { source: colors }); } 

这是一个示例演示 ,添加颜色并每秒更新一次自动完成源。

我尝试过Nick Craver的解决方案,看起来完全符合逻辑。 也许,这是因为我使用的是URL字符串而不是数组作为“源”。 不幸的是,他的解决方案没有为返回的ajax数据进行实时刷新。 为了刷新ajax数据源,我发现以下工作:

 element.autocomplete("option","source",url); element.autocomplete("search"); 

我认为字符串或ajax URL源类型需要’search’方法。