Откуда приходит json? Если это не JSON, может быть лучше поместить его в другой формат; плагин jquery.autocomplete, похоже, не имеет встроенной обработки JSON, поэтому вам придется самостоятельно писать функции обработки.
Предполагая, что эти данные никогда не изменятся, вы можете вместо этого сохранить их в файл JavaScript (скажем, country.js). Используйте следующий формат:
var countries = [
{ id: 1, country: "Albania" },
{ id: 2, country: "Algeria`" },
{ id: 3, country: "Angola" },
{ id: 4, country: "Anguilla" },
{ id: 5, country: "Antigua" },
{ id: 6, country: "Argentina" },
{ id: 7, country: "Armenia" },
{ id: 8, country: "Aruba" },
{ id: 9, country: "Australia" },
{ id: 10, country: "Austria" },
{ id: 11, country: "Azerbaijan" },
{ id: 26, country: "Bulgaria" },
{ id: 27, country: "Burkina Faso" }
];
Тогда вот как вы бы назвали плагин в вашем основном файле:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<script src="jquery.js"></script>
<script src="jquery.autocomplete.js"></script>
<script src="countries.js"></script>
<link rel="stylesheet" type="text/css" href="jquery.autocomplete.css" />
<script type="text/javascript">
$().ready(function() {
$("#menu").autocomplete(countries, {
minChars: 0,
width: 310,
matchContains: true,
autoFill: false,
formatItem: function(row, i, max) {
return row.country;
},
formatMatch: function(row, i, max) {
return row.country;
},
formatResult: function(row) {
return row.id;
}
});
});
</script>
</head>
<body>
<form autocomplete="off">
<p>
<label>Countries:</label>
<input type="text" id="menu" />
<input type="button" value="Get Value" />
</p>
</body>
</html>