Я пытаюсь изучить разработку сайта. При изучении автозаполнения функции jquery я попытался установить метки.JQuery: Autocomplete with label
function autocomplete (data) {
var data = data.toString();
var availableTags = data.split(',');
var autocompleteData = [];
for (var i = 0; i < availableTags.length; i++){
autocompleteData[i] = {};
autocompleteData[i].label = i.toString();
autocompleteData[i].value = availableTags[i];
}
$("#tags").autocomplete({
source: autocompleteData,
select: function (event, ui) {
printautocomplete(event, ui)
}
});
};
Автозаполнение [i] .value является допустимой строкой.
autocompleteData[0]
Object {label: 0, value: "Peter"}
Однако я не вижу никаких предложений. Что не так с тем, как я использую API?
В API говорит: «Array: массив может быть использован для локальных данных Есть два поддерживаемых форматов:..
An array of strings: [ "Choice1", "Choice2" ]
OR An array of objects with label and value properties: [ { label: "Choice1", value: "value1" }, ... ]
Свойство метка отображается в меню внушения значение будет вставлено в элемент ввода, когда пользователь выбирает элемент. Если указано только одно свойство, оно будет использоваться для обоих, например, если вы предоставляете только свойства значения, это значение также будет использоваться как метка. » Спасибо.
он работает полностью нормально, если я использую «источник: доступныеТаги» вместо «source: autocompleteData». –
Код работает, но он автозаполняется на основе метки, а не значений. –
да, он должен соответствовать введенному тексту, чтобы «наклеить», а затем отправить соответствующее «значение» на все, что получает его на вашей странице, когда пользователь отправляет вход. Вы можете избежать этого, только предоставив «значение» в своих объектах «autocompleteData» (отбросьте строку, добавляющую метку с помощью i.string), или просто отправьте массив параметров строки (так как вы заметили, что это 'availableTags' в любом случае, так что вы может сократить ваш код, просто используя этот массив, как сразу после его инициализации. – Ralph