Я использую Bootstrap 3 Typeahead с помощью вызова ajax.
Функция возвращает правильно данные, но они не отображаются.
Вот мой код:
$('#txtComune').typeahead({
minLength: 2,
delay: 400,
items: 5,
source: function (query, response) {
$.ajax({
url: '<?= $root; ?>/get_comuni',
dataType: "json",
type: 'POST',
data: {
query: query
},
success: function (data) {
response(data.comuni);
}
});
},
displayText: function (item) {
console.log(item.comune);
return item.comune;
}
});
Функция console.log возвращает названия всех городов, но раскрывающийся список не отображается в текстовом поле.
Вот мой текстовый код:
<input name="txtComune" class="form-control input-md" data-provide="typeahead" autocomplete="off" id="txtComune" type="text" placeholder="" maxlength="250">
Вот мои результаты JSON:
{
"exception": false,
"comuni": [{
"idComune": 1332,
"comune": "Caraffa di Catanzaro",
"pv": "CZ",
"cap": "88050",
"attivo": 1
}, {
"idComune": 1831,
"comune": "Catania",
"pv": "CT",
"cap": "951xx",
"attivo": 1
}, {
"idComune": 1832,
"comune": "Catanzaro",
"pv": "CZ",
"cap": "88100",
"attivo": 1
}, {
"idComune": 3240,
"comune": "Gravina di Catania",
"pv": "CT",
"cap": "95030",
"attivo": 1
}, {
"idComune": 4076,
"comune": "Militello in Val di Catania",
"pv": "CT",
"cap": "95043",
"attivo": 1
}, {
"idComune": 6258,
"comune": "San Gregorio di Catania",
"pv": "CT",
"cap": "95027",
"attivo": 1
}]
}
Пожалуйста, измените это:
source: function (query, response) {
$.ajax({
url: '<?= $root; ?>/get_comuni',
dataType: "json",
type: 'POST',
data: {
query: query
},
success: function (data) {
response(data.comuni);
}
});
}
К
source: function (query, response) {
return $.get('<?= $root; ?>/get_comuni', { query: query }, function (data) {
console.log(data);
return response(data);
});
}
Вот пример: jsfiddle
Других решений пока нет …