В ответе с сервера есть объект: d
;объект является массивом, поэтому вам нужно выполнить цикл по массиву, а затем выполнить цикл по каждому из значений массива.Каждое значение массива будет содержать объект, так что вы можете зациклить эти объекты с помощью функции jQuery $.each
, если хотите (чтобы не использовать hasOwnProperty
для фильтрации итерированного объекта).
Согласно плагину пользовательского интерфейса jQueryвам нужно передать массив в response
callback.Каждое значение массива должно быть объектом, содержащим два свойства: value
и label
, поэтому вам потребуется map
ответ от сервера, чтобы создать массив и передать его обратному вызову response
.Как задокументировано на странице плагина, вам также необходимо передать значение обратному вызову в случае ошибки.В этом случае пустой массив.
$("#txtbox").autocomplete({
source: function (request, response) {
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "url.aspx/GetData",
data: "{'Prefix':'" + request.term + "'}",
dataType: "json",
success: function (data) {
response($.map(data.d, function(value) {
return {
label: value.diagnosisdesc,
value: value. diagnosisdesc + '//' + value.diagnosiscode
};
}));
},
error: function (result) {
response([]);
alert("Error");
}
});
},
minLength: 3
});