Мне не удалось заставить работать formatMatch и formatResult. Я все еще работаю над «правильным» способом их использования. Однако в качестве обходного пути вы можете использовать опцию разбора следующим образом. Для ясности, в этом примере formatItem и parse работают, а formatResult и formatMatch не работают.
jQuery(function(){
$('#profile-tabs_addresses_grid_b_a_PostalCode').autocomplete
('http://test.mydomain.com/locality/postalcodes/', {
minChars:1,
delay:400,
cacheLength:100,
matchContains:true,
max:10,
formatItem:function(item, index, total, query){
return item.PostalCode + ': ' + item.Region + ', ' +
item.City + ', ' + item.Country;
},
formatMatch:function(item){
return item.PostalCode;
},
formatResult:function(item){
return item.PostalCode;
},
dataType:'json',
parse:function(data) {
return $.map(data, function(item) {
return {
data: item,
value: item.PostalCode,
result: item.PostalCode
}
});
}});
});
вот данные json, которые возвращаются из URL-адреса данных (пробел
добавлено для удобства просмотра):
[
{City:"St. Louis", Country:"USA", PostalCode:"63103", ID:3,
Region:"Missouri"},
{City:"St. Louis", Country:"USA", PostalCode:"63109", ID:1,
Region:"Missouri"},
{City:"St. Louis", Country:"USA", PostalCode:"63119", ID:2,
Region:"Missouri"}
]
Когда я набираю 6 в поле почтового индекса, он показывает все три варианта
правильно отформатирован как:
63103: Missouri, St. Louis, USA
63109: Missouri, St. Louis, USA
63119: Missouri, St. Louis, USA
и когда я выбираю один, текстовое поле получает только выбранный
почтовый индекс.