jQuery UI自动完成刷新数据

时间:2011-01-15 11:29:29

标签: jquery jquery-ui jquery-autocomplete

我使用jQuery ui自动完成功能。

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;
}

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

如何为自动完成功能设置新的颜色?

2 个答案:

答案 0 :(得分:23)

更新颜色时,您还需要更新source that autocomplete uses,如下所示:

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

Here's a sample demo doing this,添加颜色并每秒更新一次自动完成源。

答案 1 :(得分:0)

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

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

我认为'搜索' string或ajax URL源类型需要method。