Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Edu1234

campo no formulário

Recommended Posts

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]

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

ajuda php

 

Seu código não é PHP, e sim Javascript :dormindo:

Com Jquery tem a função keyup, e para contar quantos caracteres tem, use length

$(document).ready(function() {

    $("#postal_code").keyup(function (e) {
        
        var postal_code = $('#postal_code').val();
        
        //Verifica a quantidade e dispara a consulta
        if(postal_code.length >= 9){

            alert(postal_code);
            //code
        }

    });

});

Ps.: E melhor pedir para mover o tópico para :seta: área de JS e renomear o titulo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.