Javascript JQuery在选择时自动完成清除输入
我使用此代码在输入地址时从Azure Maps API弹出自动建议 问题是,每次我选择一个地址,它都会清除搜索框。但是,我希望在单击某个选项时,街道地址填充搜索框,而不是addressLineTbx 我尝试了以下代码,但单击其中一个选项后,搜索框仍会清除Javascript JQuery在选择时自动完成清除输入,javascript,jquery,autocomplete,azure-maps,Javascript,Jquery,Autocomplete,Azure Maps,我使用此代码在输入地址时从Azure Maps API弹出自动建议 问题是,每次我选择一个地址,它都会清除搜索框。但是,我希望在单击某个选项时,街道地址填充搜索框,而不是addressLineTbx 我尝试了以下代码,但单击其中一个选项后,搜索框仍会清除 document.getElementById('searchBox').value = (selection.address.streetNumber ? (selection.address.streetNumber + ' ') : '
document.getElementById('searchBox').value = (selection.address.streetNumber ? (selection.address.streetNumber + ' ') : '') + (selection.address.streetName || '');
在事件中使用event.preventDefault停止自动完成设置值,然后设置地址
select: function(event, ui) {
//Stop the autocomplete from setting a value
event.preventDefault();
//When a suggestion has been selected.
var selection = ui.item;
//Format address
var address = (selection.address.streetNumber ? (selection.address.streetNumber + ' ') : '') + (selection.address.streetName || '')
//Set the address to the autocomplete
$(this).val(address)
//Populate the address textbox values.
// document.getElementById('addressLineTbx').value = address;
// ...
}
//在获取Azure地图密钥https://azure.com/maps
var subscriptionKey=;
var addresssGeocodeServiceUrlTemplate='0https://atlas.microsoft.com/search/address/json?typeahead=true&subscription-key={subscription key}&api version=1&query={query}&language={language}&countrySet={countrySet}&view=Auto';
document.AddEventListenerDomainContentLoaded,PageLoaded;
功能页面已加载{
//创建jQuery自动完成UI小部件。
$searchBox.autocomplete{
minLength:3,//在至少输入3个字符之前,不要征求建议。
来源:functionrequest,response{
//创建Azure地图搜索服务的URL以执行地址搜索。
var requestUrl=addresssGeocodeServiceUrlTemplate.replace“{query}”,encodeURIComponentrequest.term
.替换“{subscription key}”,subscriptionKey
.替换“{language}”,“en US”
.replace“{countrySet}”、“US”;//一个逗号分隔的国家代码字符串,用于将建议限制为。
$.ajax{
url:requestUrl,
成功:functiondata{
结果;
}
};
},
选择:functionevent,ui{
//停止自动完成设置值
违约事件;
//当选择建议时。
var selection=ui.item;
//格式地址
var address=selection.address.streetNumber?selection.address.streetNumber+“”:+selection.address.streetName |
//将地址设置为自动完成
$this.valaddress
//填充地址文本框值。
document.getElementById'addressLineTbx'。值=地址;
document.getElementById'cityTbx'。value=selection.address.university | |;
document.getElementById'countyTbx'。value=selection.address.CountrySecondary细分| |;
document.getElementById'stateTbx'。value=selection.address.CountrySubsection | |;
document.getElementById'postalCodeTbx'。值=selection.address.postalCode | |;
document.getElementById'countryTbx'。value=selection.address.countryCodeISO3 | |;
}
}.autocompleteinstance.\u renderItem=functional,项{
//格式化显示的建议以显示格式化的建议字符串。
var suggestionLabel=item.address.freeformAddress;
如果item.poi&&item.poi.name{
suggestionLabel=item.poi.name+“”+suggestionLabel+;
}
返回$
.append,它在用户键入时提供地址建议,并用所选建议填充表单。
正是我想要的。谢谢!