Я использую плагин автозаполнения jQuery ( api doc ), который вызывает сервис, который возвращает json. У меня есть плагин, который отлично использует результат json, и все работает, за исключением моей пользовательской функции formatResult, которая никогда не вызывается. Я хотел бы использовать эту функцию для захвата выбора пользователя из списка результатов для заполнения других полей на странице.
$(document).ready(function() {
$("#vendorname").autocomplete("/Vendor/Search", {
dataType: 'json',
parse: function(data) {
var rows = new Array();
for (var i = 0; i < data.length; i++) {
rows[i] = { data: data[i], value: data[i].Name, result: data[i].Name };
}
return rows;
},
formatItem: function(row, i, n) {
return row.RepName + ' (' + row.VendorId + ')';
},
formatResult: function(row, i, n) {
return '(formatResult) ' + row.Name;
},
width: 200,
mustMatch: false,
scroll: true,
scrollHeight: 300
});
});
Строка json, возвращаемая службой: (два объекта Vendor)
[{"VendorId":1,"Name":"abc","RepName":"rep of abc","Phone":null,"Email":null,"Notes":null,"Version":null,"Fax":null,"ProductQuotes":[],"PurchaseOrders":[]},{"VendorId":2,"Name":"def","RepName":"rep of def","Phone":null,"Email":null,"Notes":null,"Version":null,"Fax":null,"ProductQuotes":[],"PurchaseOrders":[]}]
Итак,
1) Почему formatResult никогда не срабатывает?
2) Есть ли лучший способ получить свойства объекта после того, как пользователь выбрал элемент из результатов?