アドレスの一部であるさまざまな入力テキスト ボックスで Google マップのオートコンプリートを行う次の JavaScript コードがあります。
function startAutoComplete() {
var address = document.getElementById("addressId");
var city = document.getElementById("cityId");
var state = document.getElementById("stateId");
var zip = document.getElementById("zipId");
//option for autocomplete
var option = {types: ['geocode'], componentRestrictions: {country: 'us'}};
//autocomplete for address textbox
autocomplete = new google.maps.places.Autocomplete(address, option);
google.maps.event.addListener(autocomplete, 'place_changed', function() {
var place = autocomplete.getPlace();
//parses the result object and populates the other textboxes accordingly
for(i=0; i<place.address_components.length; i++)
{
if(place.address_components[i].types[0] == 'locality')
city.value = place.address_components[i].long_name;
if(place.address_components[i].types[0] == 'administrative_area_level_1')
state.value = place.address_components[i].short_name;
if(place.address_components[i].types[0] == 'postal_code')
zip.value = place.address_components[i].long_name;
}
/* Here is the PROBLEM */
address.value = place.name;
});
ただし、完全な住所の短縮版で自動補完されているテキストボックスを更新しようとすると(ここでは番地と番地のみ)。完全な住所テキスト ボックスの値は変更されません。jquery を使用して、テキスト ボックスの setAttribute() で value 属性を設定しようとしました。私は何を間違っていますか?