我有一个使用JSON源文件的自动完成字段。现在,我想将JSON更改为键值格式。像这样
{"Countries":{"Andorra":"AD","United Arab Emirates":"AE"}}如何让字段存储"AD“并自动补全"Andorra"?
$(function () {
$.get('../data/data.json', function (data) {
var country = Object.keys(data['Countries']).map(function (k) {
return data['Countries'][k]
});
$('#country_autocomplete').autocomplete({
lookup: country,
onSelect: function (suggestion) {
console.log('You selected: ' + suggestion.key);
}
});
});});
发布于 2017-08-25 14:32:13
在这里,我已经将JSON响应转换为自动完成所需的响应;
var data = {"Countries":{"Andorra":"AD","United Arab Emirates":"AE" , "India" : "IN" , "Australia" : "AUS"} } ;
var countries = [] ;
var country_full_names = new Array();
country_full_names = Object.keys(data.Countries);
country_full_names.forEach( function( element ){
var obj = {};
obj.value = element ;
obj.data = data.Countries[element] ;
console.log(obj);
countries.push(obj);
});
$('#country_autocomplete').autocomplete({
lookup: countries,
onSelect: function (suggestion) {
alert('You selected: ' + suggestion.value + ', ' + suggestion.data);
}
});在上面的代码片段中,我没有使用AJAX/XHR初始化数据。但是要初始化请求,只需用下面的代码替换第一行
var data = {};
$.get('../data/data.json', function ( response ) {
data = response ;
}); 这是有效的小提琴https://jsfiddle.net/u77va6xt/
https://stackoverflow.com/questions/45874583
复制相似问题