Я хочу создать текстовое поле автозаполнения, чтобы отобразить имя и получить значение при выборе одного из них.JQuery Autocomplete не работает при использовании JSON
Im следуя учебник с этого сайта
и успех. рабочий код выглядит так:
var data = [
{ value: "AL", label: "Alabama" },
{ value: "AK", label: "Alaska" },
{ value: "AZ", label: "Arizona" }
];
$(function() {
$("#autocomplete2").autocomplete({
source: data,
focus: function(event, ui) {
event.preventDefault();
$(this).val(ui.item.label);
},
select: function(event, ui) {
event.preventDefault();
$(this).val(ui.item.label);
$("#autocomplete2-value").val(ui.item.value);
}
});
});
Я хочу заменить данные var, записанные выше, моим JSON. вот что мой JSON выглядеть
[{"value":"1","label":"Gambir"},{"value":"2","label":"Kebon Kelapa"},{"value":"3","label":"Petojo Utara"}]
я хочу сделать это
var data = [
here would be data from my json,
the JSON url: app.base_url+'adm/pengiriman/pengiriman_kodepos'
how to write code to retrieve JSON in here?
];
$(function() {
$("#autocomplete2").autocomplete({
source: data,
focus: function(event, ui) {
event.preventDefault();
$(this).val(ui.item.label);
},
select: function(event, ui) {
event.preventDefault();
$(this).val(ui.item.label);
$("#autocomplete2-value").val(ui.item.value);
}
});
});
, но, что это правильный способ сделать это? я пытаюсь изменить источник из этого:
source: data,
стать этим:
source: function (request, response) {
$.getJSON(app.base_url+'adm/pengiriman/pengiriman_kodepos', function (data) {
response($.map(data, function (value, key) {
return {
label: value,
value: key
};
}));
});
},
или это:
source: function(request, response) {
$.ajax({
url: app.base_url+'adm/pengiriman/pengiriman_kodepos',
dataType: "json",
data: { q: request.term },
success: function(data) {
response($.map(data, function(value,key) {
return { label:value.label , value: value.value }
}));
}
});
},
или это:
source: app.base_url+'adm/pengiriman/pengiriman_kodepos',
еще не везёт .. im довольно новый для JQuery a nd также JSON спасибо за помощь.
спасибо за ответ. Я пробую этот код, еще не работает, и никаких ошибок. и что вы подразумеваете под настройкой кода? является то, что любой возможный способ получить массив JSON и поставить его заменить код уаг данные = [ {значение: «AL», этикетка: «Alabama»}, {значение: «АК», метки: «Аляска»}, {значение: «AZ», ярлык: «Аризона»} ]; –
Если вы можете создать 'jsbin' или' jsfiddle', это можно быстро решить. – Diode
Вы не можете напрямую заменить 'data' на json, так как запросы, сделанные сервером, являются асинхронными. – Diode