У меня есть этот формат JSON, возвращаемый сервер по некоторым ключевым словам, набранных в текстовом поле:Как получить доступ к возвращаемым значениям JSON для автоматического завершения выбора?
[{"id":1,"value":"some string!"}]
и я хочу, когда пользователь выбрал элемент, браузер перейти на другую страницу с помощью выделенной области id
; который существует в возвращенном JSON. это мой автозаполнения код:
$(function() {
$("#search-box").autocomplete({
source: function (request, response) {
$.ajax({
type: "GET",
url: "../Contenthandler/Search.ashx",
dataType: "json",
data: 'query=' + request.term,
success: function (data) {
response($.map(data, function (item) {
return { label: item.value };
})
);
}
});
},
minLength: 3,
open: function() {
$(this).removeClass("ui-corner-all").addClass("ui-corner-top");
},
close: function() {
$(this).removeClass("ui-corner-top").addClass("ui-corner-all");
},
select: function (event, ui) {
if (ui.item) {
window.location.href = "../ControlPanel.aspx?id=" + ui.item.id;
}
}
});
});
но ui.item.id
является undefined
. Как я могу получить доступ к id
(1) о событии выбора?
По вашему результату JSON, например, внешний элемент большинства данных является массивом. Поэтому вам нужно будет ссылаться на нотацию массива в этот момент. – Taplar
@Taplar so, Как я могу получить доступ к 'id'? –
Вы получаете ответ? Другими словами, когда-либо назывался ваш обработчик 'success'? Точка Taplar заключается в том, что объект результатов * isnt json *, но ваш вызов ajax ожидает ответ json. – wahwahwah