O código apresentado permite a consulta automática de endereços a partir de um CEP, utilizando a API pública do ViaCEP. Essa funcionalidade é extremamente útil em formulários de cadastro, e-commerce e sistemas que necessitam de dados de endereço de forma rápida e eficiente.
Neste artigo, vamos explicar:
✔ Para que serve o código
✔ Como ele funciona
✔ Como implementá-lo em seu projeto
1. Para que Serve o Código?
O script tem como principal objetivo automatizar o preenchimento de campos de endereço (rua, bairro, cidade e estado) assim que o usuário digita um CEP válido.
Principais benefícios:
✅ Melhora a experiência do usuário (não precisa digitar manualmente o endereço)
✅ Reduz erros (os dados vêm diretamente de uma fonte confiável)
✅ Economiza tempo (preenchimento instantâneo)
É ideal para:
- Lojas virtuais
- Sistemas de cadastro
- Aplicações que exigem dados de endereço
2. Como o Código Funciona?
Fluxo de Execução:
- O usuário digita o CEP e sai do campo (evento
blur). - O script remove caracteres não numéricos e valida o formato (8 dígitos).
- Se o CEP for válido, ele faz uma requisição à API ViaCEP (
https://viacep.com.br/ws/${cep}/json/). - Se o CEP existir, os campos de endereço são preenchidos automaticamente.
- Se o CEP for inválido ou não existir, os campos são limpos e uma mensagem de erro é exibida.
Tecnologias Utilizadas:
🔹 jQuery (para simplificar manipulação do DOM e requisições AJAX)
🔹 API ViaCEP (serviço gratuito de consulta de CEP)
3. Como Usar o Código?
Passo 1: Estrutura HTML Básica
O formulário deve conter os campos com os IDs corretos para que o script funcione:
<input type="text" id="cep" placeholder="Digite o CEP">
<input type="text" id="rua" readonly>
<input type="text" id="bairro" readonly>
<input type="text" id="cidade" readonly>
<input type="text" id="uf" readonly>
Passo 2: Inclua o jQuery
Adicione a biblioteca jQuery antes do script:
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
Passo 3: Configure os IDs (se necessário)
Se seus campos tiverem IDs diferentes, atualize a constante selectors:
const selectors = {
rua: '#endereco', // Exemplo: se o ID do campo for "endereco"
bairro: '#bairro',
cidade: '#municipio', // Exemplo: se o ID for "municipio"
uf: '#estado',
cep: '#cep'
};
Passo 4: Teste o Funcionamento
- Digite um CEP válido (ex:
01001000) e clique fora do campo. - Os campos devem ser preenchidos automaticamente.
4. Personalizações Possíveis
Adicionar Máscara ao CEP
Para melhorar a usabilidade, você pode incluir uma máscara no campo CEP:
<input type="text" id="cep" placeholder="00000-000" onkeypress="mascaraCEP(this)">
function mascaraCEP(cep) {
cep.value = cep.value.replace(/\D/g, '')
.replace(/(\d{5})(\d)/, '$1-$2')
.substring(0, 9);
}
Adicionar Validação Extra
Verifique se o CEP existe antes de enviar o formulário:
$jq('#meuForm').submit(function(e) {
if ($jq(selectors.rua).val() === '') {
alert('Por favor, insira um CEP válido.');
e.preventDefault();
}
});
Código completo
<script type="text/javascript">
/* SETUP DOS IDS DO FORM
*
* Insira os ID's CSS de acordo com os campos do seu formulário.
*/
const selectors = {
rua: '#rua',
bairro: '#bairro',
cidade: '#cidade',
uf: '#uf',
cep: '#cep'
};
// Inicializa jQuery no modo noConflict
const $jq = jQuery.noConflict();
$jq(document).ready(function() {
// Função para limpar os campos do formulário
function limpaFormulario() {
$jq(selectors.rua).val('');
$jq(selectors.bairro).val('');
$jq(selectors.cidade).val('');
$jq(selectors.uf).val('');
}
// Função para preencher os campos com os dados do CEP
function preencheCamposEndereco(dados) {
$jq(selectors.rua).val(dados.logradouro);
$jq(selectors.bairro).val(dados.bairro);
$jq(selectors.cidade).val(dados.localidade);
$jq(selectors.uf).val(dados.uf);
}
// Evento que dispara ao perder o foco no campo CEP
$jq(selectors.cep).blur(function() {
const cep = $jq(this).val().replace(/\D/g, '');
if (cep) {
// Valida o formato do CEP
const validacep = /^[0-9]{8}$/;
if (validacep.test(cep)) {
// Preenche os campos com "carregando" enquanto consulta
Object.values(selectors).forEach(selector => {
$jq(selector).val('...carregando');
});
// Consulta o webservice viacep.com.br/
$jq.getJSON(`https://viacep.com.br/ws/${cep}/json/?callback=?`, function(dados) {
if (!('erro' in dados)) {
preencheCamposEndereco(dados);
} else {
limpaFormulario();
alert('CEP não encontrado.');
}
});
} else {
limpaFormulario();
alert('Formato de CEP inválido.');
}
} else {
limpaFormulario();
}
});
});
</script>
5. Conclusão
Este script é uma solução simples e eficiente para automatizar o preenchimento de endereços a partir do CEP, melhorando a experiência do usuário e reduzindo erros em formulários.
Link para teste: Clique aqui
Próximos Passos:
- Implemente em seu site ou sistema
- Personalize conforme sua necessidade
- Teste com diferentes CEPs para garantir o funcionamento
Se tiver dúvidas, consulte a documentação do ViaCEP.
🚀 Agora é só implementar e facilitar a vida dos seus usuários!
