campo no formulário
olá, tenho um campo no formulário que ao digitar o CEP,
aparece uma lista de endereços abaixo do campo com base no Google, dai a pessoa clica sobre o endereço e automaticamente o script abaixo pega o cep, e inclui os dados do endereço nos demais campos hidden.
oque eu quero fazer:
quero que o usuário não precise clicar na lista de endereço que aparece abaixo do input id="autocomplete",
coloquei uma mascara nesse campo que só permite que ele digite cep em formato 00000-000
dai após ele digitar o ultimo numero fosse realizada automaticamente a consulta e o preenchimento, sem que ele precise clicar sobre os endereços que aparecem.
não sei se é algo simples ou complicado.
não tenho muita noção de java.
Obrigado e aguardo ajuda pq estou 5 dias sem sair do lugar, rsrs...
formulário:
--------------------------------------------------------------------------------------------------------
<input id="autocomplete" name="end" placeholder="Rua, Bairro ou Cep" onFocus="geolocate()" class="form-control" type="text" required="required"/>
<input type="hidden" id="locality" name="cidade" />
<input type="hidden" id="administrative_area_level_1" name="uf"/>
<input type="hidden" id="postal_code" name="cep"/>
<input type="hidden" class="field" id="latitude" name="latitude" required="required"/>
<input type="hidden" class="field" id="longitude" name="longitude" required="required"/>
--------------------------------------------------------------------------------------------------------
dai o arquivo. js que pega o CEP e inclui as opções e depois preenche os campos hidden é o seguinte
--------------------------------------------------------------------------------------------------------
// This example displays an address form, using the autocomplete feature
// of the Google Places API to help users fill in the information.
var placeSearch, autocomplete;
var componentForm = {
locality: 'long_name',
administrative_area_level_1: 'short_name',
postal_code: 'short_name'
};
function initialize() {
// Create the autocomplete object, restricting the search
// to geographical location types.
autocomplete = new google.maps.places.Autocomplete(
/** @type {HTMLInputElement} */(document.getElementById('autocomplete')),
{ types: ['geocode'] });
// When the user selects an address from the dropdown,
// populate the address fields in the form.
google.maps.event.addListener(autocomplete, 'place_changed', function() {
fillInAddress();
});
}
// [sTART region_fillform]
function fillInAddress() {
// Get the place details from the autocomplete object.
var place = autocomplete.getPlace();
document.getElementById("latitude").value = place.geometry.location.lat();
document.getElementById("longitude").value = place.geometry.location.lng();
for (var component in componentForm) {
document.getElementById(component).value = '';
document.getElementById(component).disabled = false;
}
// Get each component of the address from the place details
// and fill the corresponding field on the form.
for (var i = 0; i < place.address_components.length; i++) {
var addressType = place.address_components*.types[0];*
if (componentForm[addressType]) {
* var val = place.address_components**[componentForm[addressType]];*
document.getElementById(addressType).value = val;
}
}
}
// [END region_fillform]
// [sTART region_geolocation]
// Bias the autocomplete object to the user's geographical location,
// as supplied by the browser's 'navigator.geolocation' object.
function geolocate() {
if (navigator.geolocation) {
* navigator.geolocation.getCurrentPosition(function(position) {*
* var geolocation = new google.maps.LatLng(*position.coords.latitude, position.coords.longitude);
var circle = new google.maps.Circle({
center: geolocation,
radius: position.coords.accuracy
});
autocomplete.setBounds(circle.getBounds());
});
}
}
// [END region_geolocation]
Discussão (1)
Carregando comentários...