jQuery .autocomplete() 在一个输入字段中包含邮政编码和城市名称
jQuery .autocomplete() with postal code and cityname in one input field
您好,我正在尝试为地理数据构建一个具有自动完成功能的字段 (geonames.org API)。
我想出了如何解决邮政编码输入和按城市名称搜索的问题。我想这样做,它可以包括两者。如果我用城市名称搜索,它还会显示最近城市的所有可能的邮政编码。
希望你能帮助我或给我提示。
我的代码是:
$(function () {
function log(message) {
$("#log").text(message);
$("#log").scrollTop(0);
}
$("#city").autocomplete({
source: function (request, response) {
$.ajax({
url: "http://api.geonames.org/postalCodeSearchJSON",
dataType: "jsonp",
data: {
postalcode_startsWith: request.term,
maxRows: 10,
country: "DE",
username: "username"
},
success: function (data) {
response($.map(data.postalCodes, function (item) {
return {
label: item.postalCode + "-" + item.placeName,
value: item.postalCode + "-" + item.placeName
}
}));
}
});
},
minLength: 2,
select: function (event, ui) {
log(ui.item ?
"Sie haben: " + ui.item.label + " ausgewählt ":
"Nichts ausgewählt " + this.value);
}
});
});
更新:
像往常一样简单。不需要特殊代码,只需将数据:更改为以下
data: {
featureClass: "P",
maxRows: 10,
country: "DE",
placename_startsWith: request.term,
username: "yourusername"
}
您好,我正在尝试为地理数据构建一个具有自动完成功能的字段 (geonames.org API)。
我想出了如何解决邮政编码输入和按城市名称搜索的问题。我想这样做,它可以包括两者。如果我用城市名称搜索,它还会显示最近城市的所有可能的邮政编码。
希望你能帮助我或给我提示。
我的代码是:
$(function () {
function log(message) {
$("#log").text(message);
$("#log").scrollTop(0);
}
$("#city").autocomplete({
source: function (request, response) {
$.ajax({
url: "http://api.geonames.org/postalCodeSearchJSON",
dataType: "jsonp",
data: {
postalcode_startsWith: request.term,
maxRows: 10,
country: "DE",
username: "username"
},
success: function (data) {
response($.map(data.postalCodes, function (item) {
return {
label: item.postalCode + "-" + item.placeName,
value: item.postalCode + "-" + item.placeName
}
}));
}
});
},
minLength: 2,
select: function (event, ui) {
log(ui.item ?
"Sie haben: " + ui.item.label + " ausgewählt ":
"Nichts ausgewählt " + this.value);
}
});
});
更新:
像往常一样简单。不需要特殊代码,只需将数据:更改为以下
data: {
featureClass: "P",
maxRows: 10,
country: "DE",
placename_startsWith: request.term,
username: "yourusername"
}