javascript - Check if address is full in Google Maps API v3 -


i need check if given address full or not. i'm using google maps api v3 autocomplete in 1 of fields , when address selected, 3 other fields populated. fields: city, street name, house.

when select full address, works fine. if i, example, not enter house number, wrong results. city becomes parish, street becomes city, house becomes street.

question is: how check if given address full or how select required address components not [0], [1] etc, ['city'], ['street'] etc?

code:

<script>     function initialize() {         var mapoptions = {             center: new google.maps.latlng(55.169438, 23.881275),             zoom: 7,             maptypeid: google.maps.maptypeid.roadmap         };         var map = new google.maps.map(document.getelementbyid('map_canvas'),             mapoptions);          var input = document.getelementbyid('searchmap');         var autocomplete = new google.maps.places.autocomplete(input);          autocomplete.bindto('bounds', map);          var infowindow = new google.maps.infowindow();         var marker = new google.maps.marker({             map: map         });          google.maps.event.addlistener(autocomplete, 'place_changed', function () {             infowindow.close();             marker.setvisible(false);             var place = autocomplete.getplace();             if (!place.geometry) {                 $("#cityname").attr("readonly", false);                 $("#streetname").attr("readonly", false);                 $("#house").attr("readonly", false);                 $("#externalid").attr("readonly", false);                 return;             }             $("#cityname").attr("readonly", true);             $("#streetname").attr("readonly", true);             $("#house").attr("readonly", true);             $("#externalid").attr("readonly", true);              if (place.geometry.viewport) {                 map.fitbounds(place.geometry.viewport);             } else {                 map.setcenter(place.geometry.location);                 map.setzoom(17);             }             var image = {                 url: place.icon,                 size: new google.maps.size(71, 71),                 origin: new google.maps.point(0, 0),                 anchor: new google.maps.point(17, 34),                 scaledsize: new google.maps.size(35, 35)             };             marker.seticon(image);             marker.setposition(place.geometry.location);             marker.setvisible(true);              var address = '';             if (place.address_components) {                 address = [                     (place.address_components[0] && place.address_components[0].short_name || ''),                     (place.address_components[1] && place.address_components[1].short_name || ''),                     (place.address_components[2] && place.address_components[2].short_name || '')                 ].join(' ');                 $('#house').val(place.address_components[0] && place.address_components[0].short_name || '');                 $('#streetname').val(place.address_components[1] && place.address_components[1].short_name || '');                 $('#cityname').val(place.address_components[2] && place.address_components[2].short_name || '');                 $('#externalid').val(place.id);             }             infowindow.setcontent('<div><strong>' + place.name + '</strong><br>' + address);             infowindow.open(map, marker);         });     }     google.maps.event.adddomlistener(window, 'load', initialize); </script> 


Comments