【问题标题】:jQuery UI autocomplete refresh datajQuery UI 自动完成刷新数据
【发布时间】:2011-01-15 11:29:29
【问题描述】:

我使用 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;
}

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

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

【问题讨论】:

  • 一定要在问题中发布您的实际代码...您发布的代码中有很多错误,问题的措辞就像它 工作,所以我将其归因于问题中的不同代码,如果我有误解并且它当前工作,请评论答案。

标签: jquery jquery-ui jquery-autocomplete


【解决方案1】:

更新颜色时,还需要更新source that autocomplete uses,像这样:

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

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

【讨论】:

  • 我使用 autcomplete,但对“选择”事件有一个回调函数。这样做但不重新设置回调函数怎么办?回调事件是否仍然有效还是会消失?
【解决方案2】:

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

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

我认为字符串或 ajax URL 源类型需要“搜索”方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-07
    • 2011-02-21
    • 1970-01-01
    • 2014-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多