[英]Jquery autocomplete not working - No search result
我正在ajax调用中创建一个国家列表,该国家列表是一个对象数组:
$.ajax({
url: '//maps.googleapis.com/maps/api/geocode/json?address=' + zipCode + '®ion=AT',
type: 'GET',
dataType: 'json',
success: function (res){
var countryList = [];
... ...
... ...
countryList.push({
label: countryCode + ' ' + countryName,
value: result[0]['id'],
countryId: result[0]['id'],
countryCode: countryCode,
countryName: countryName,
city: city
});
zipCodeSelector.autocomplete({
source: countryList
});
}
})
自动完成的响应是
没有搜寻结果
对象看起来像这样:
[Object]
0: Object
city: "Berlin"
countryCode: "DE"
countryId: "a7c40f631fc920687.20179984"
countryName: "Germany"
label: "DE Germany"
value: "a7c40f631fc920687.20179984"
我在ajax中调用自动完成功能。 这是一个问题还是还有其他问题?
您可以在source选项中调用ajax方法,而不是在数组之前填充。
source
选项接受自定义函数,请参见:
功能:第三个变体是回调,提供了最大的灵活性,可用于将任何数据源连接到自动完成。 回调有两个参数:具有单个term属性的请求对象,该对象引用文本输入中当前的值。 例如,如果用户在城市字段中输入“ new yo”,则“自动完成”字词将等于“ new yo”。 响应回调,它需要一个参数:向用户建议的数据。 该数据应根据提供的术语进行过滤,并且可以采用上述针对简单本地数据描述的任何格式。 提供自定义源回调以处理请求期间的错误时,这一点很重要。 即使遇到错误,也必须始终调用响应回调。 这样可以确保小部件始终具有正确的状态。 在本地过滤数据时,可以使用内置的$ .ui.autocomplete.escapeRegex函数。 它只需要一个字符串参数,并转义所有正则表达式字符,因此可以安全地将结果传递给新的RegExp()。
码:
$("#autocomplete").autocomplete({
source: function (req, resp) {
$.ajax({
url: '//maps.googleapis.com/maps/api/geocode/json?latlng=55.397563, 10.39870099999996&sensor=false',
type: 'GET',
dataType: 'json',
success: function (res) {
resp($.map(res.results, function (item) {
return {
label: item.formatted_address,
value: item.place_id
};
}));
}
})
}
});
演示: http : //jsfiddle.net/vzhjstuf/
尝试像这样访问您的JSON
内容,因为您在ajax
调用上指定了期望res上的JSON
格式的数据。
要访问JSON
的属性,请执行以下操作,然后将其推送到另一个数组。
res[0].city;
res[0].countryCode;
对象规则的访问属性为:
Object.property
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.