From a0a233e0382d0bf2bbe38a3dc2e637245f653894 Mon Sep 17 00:00:00 2001 From: Joan Date: Fri, 22 Oct 2021 12:35:27 -0300 Subject: [PATCH] Adding script for automatic filling in of Brazilian addresses by zip code. --- assets/js/address-autocomplete-BR.js | 44 ++++++++++++++++++++++++++++ footer.php | 1 + registration.php | 8 ++--- 3 files changed, 49 insertions(+), 4 deletions(-) create mode 100644 assets/js/address-autocomplete-BR.js diff --git a/assets/js/address-autocomplete-BR.js b/assets/js/address-autocomplete-BR.js new file mode 100644 index 0000000..e28aab7 --- /dev/null +++ b/assets/js/address-autocomplete-BR.js @@ -0,0 +1,44 @@ + +function meu_callback(conteudo) { +if (!("erro" in conteudo)) { + //Atualiza os campos com os valores. + document.getElementById('cust_address').value=(`${conteudo.logradouro}, ${conteudo.bairro}`); + document.getElementById('cust_city').value=(conteudo.localidade); + document.getElementById('cust_state').value=(conteudo.uf); +} //end if. + +} + +function pesquisacep(valor) { + +//Nova variável "cep" somente com dígitos. +var cep = valor.replace(/\D/g, ''); + +//Verifica se campo cep possui valor informado. +if (cep != "") { + + //Expressão regular para validar o CEP. + var validacep = /^[0-9]{8}$/; + + //Valida o formato do CEP. + if(validacep.test(cep)) { + + //Preenche os campos com "..." enquanto consulta webservice. + document.getElementById('cust_address').value="..."; + document.getElementById('cust_city').value="..."; + document.getElementById('cust_state').value="..."; + + //Cria um elemento javascript. + var script = document.createElement('script'); + + //Sincroniza com o callback. + script.src = 'https://viacep.com.br/ws/'+ cep + '/json/?callback=meu_callback'; + + //Insere script no documento e carrega o conteúdo. + document.body.appendChild(script); + + } //end if. + +} //end if. + +}; diff --git a/footer.php b/footer.php index e512aa8..05e71a1 100644 --- a/footer.php +++ b/footer.php @@ -158,6 +158,7 @@ +