JQuery UI автозаполнение обновления данных - PullRequest
10 голосов
/ 15 января 2011

Я использую функцию автозаполнения 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 ]

23 голосов
/ 15 января 2011

Когда вы обновляете цвет, вам также необходимо обновить источник, который используется для автозаполнения , например:

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

Вот пример демонстрации, который делает это , добавление цвета и обновление источника автозаполнения раз в секунду.

0 голосов
/ 07 сентября 2017

Я испробовал решение Ника Крейвера, которое выглядит вполне логичным. Возможно, это потому, что я использую строку URL, а не массив в качестве «источника». К сожалению, его решение не обновляет данные AJAX. Чтобы обновить источник данных ajax, я обнаружил, что работает следующее:

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

Я думаю, что метод поиска необходим для строковых или ajax-типов источников URL.

...