jQuery UI автозаполнение обновить данные
Я использую функцию автозаполнения 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 ответов
при обновлении цвета необходимо также обновить источник, который использует автозаполнение, например:
function addColor() {
//add colors
$('#empf').autocomplete("option", { source: colors });
}
вот пример демо делает это, добавление цвета и обновление источника автозаполнения один раз в секунду.
Я пробовал решение Ника Крейвера, которое выглядит вполне логичным. Возможно, это потому, что я использую строку URL, а не массив в качестве "источника". К сожалению, его решение не выполняет живое обновление для возвращаемых данных ajax. Чтобы обновить источник данных ajax, я обнаружил, что работает следующее:
element.autocomplete("option","source",url);
element.autocomplete("search");
Я думаю, что метод "поиск" необходим для исходных типов string или ajax URL.