Edu1234 0 Denunciar post Postado Junho 4, 2015 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
Williams Duarte 431 Denunciar post Postado Junho 4, 2015 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