Created
April 11, 2019 02:44
-
-
Save rafaelstz/eef2bd9b66ede2e9c69b45ba7db51602 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
jQuery(function($){ | |
////////////////////////////////////////////////////// | |
function limpa_formulário_cep() { | |
// Limpa valores do formulário de cep. | |
$("#billing\\:street1").val(""); | |
$("#billing\\:city").val(""); | |
$("#billing\\:region_id").val(""); | |
} | |
$("#billing\\:region_id option[value='485']").attr("data-sigla", "AC"); | |
$("#billing\\:region_id option[value='486']").attr("data-sigla", "AL"); | |
$("#billing\\:region_id option[value='487']").attr("data-sigla", "AP"); | |
$("#billing\\:region_id option[value='488']").attr("data-sigla", "AM"); | |
$("#billing\\:region_id option[value='489']").attr("data-sigla", "BA"); | |
$("#billing\\:region_id option[value='490']").attr("data-sigla", "CE"); | |
$("#billing\\:region_id option[value='511']").attr("data-sigla", "DF"); | |
$("#billing\\:region_id option[value='491']").attr("data-sigla", "ES"); | |
$("#billing\\:region_id option[value='492']").attr("data-sigla", "GO"); | |
$("#billing\\:region_id option[value='493']").attr("data-sigla", "MA"); | |
$("#billing\\:region_id option[value='495']").attr("data-sigla", "MS"); | |
$("#billing\\:region_id option[value='494']").attr("data-sigla", "MT"); | |
$("#billing\\:region_id option[value='496']").attr("data-sigla", "MG"); | |
$("#billing\\:region_id option[value='499']").attr("data-sigla", "PR"); | |
$("#billing\\:region_id option[value='498']").attr("data-sigla", "PB"); | |
$("#billing\\:region_id option[value='497']").attr("data-sigla", "PA"); | |
$("#billing\\:region_id option[value='500']").attr("data-sigla", "PE"); | |
$("#billing\\:region_id option[value='501']").attr("data-sigla", "PI"); | |
$("#billing\\:region_id option[value='502']").attr("data-sigla", "RJ"); | |
$("#billing\\:region_id option[value='503']").attr("data-sigla", "RN"); | |
$("#billing\\:region_id option[value='504']").attr("data-sigla", "RS"); | |
$("#billing\\:region_id option[value='505']").attr("data-sigla", "RO"); | |
$("#billing\\:region_id option[value='506']").attr("data-sigla", "RR"); | |
$("#billing\\:region_id option[value='507']").attr("data-sigla", "SC"); | |
$("#billing\\:region_id option[value='509']").attr("data-sigla", "SE"); | |
$("#billing\\:region_id option[value='508']").attr("data-sigla", "SP"); | |
$("#billing\\:region_id option[value='510']").attr("data-sigla", "TO"); | |
//Quando o campo cep perde o foco. | |
$("#billing\\:postcode").blur(function() { | |
//Nova variável "cep" somente com dígitos. | |
var cep = $(this).val().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. | |
$("#billing\\:street1").val("...") | |
$("#billing\\:city").val("...") | |
$("#billing\\:region_id").val("...") | |
//Consulta o webservice viacep.com.br/ | |
$.getJSON("//viacep.com.br/ws/"+ cep +"/json/?callback=?", function(dados) { | |
if (!("erro" in dados)) { | |
//Atualiza os campos com os valores da consulta. | |
$("#billing\\:street1").val(dados.logradouro); | |
$("#billing\\:city").val(dados.localidade); | |
$('#billing\\:region_id option').each(function() { | |
$(this).attr('selected', this.dataset.sigla == dados.uf); | |
}); | |
} //end if. | |
else { | |
//CEP pesquisado não foi encontrado. | |
limpa_formulário_cep(); | |
alert("CEP não encontrado."); | |
} | |
}); | |
} //end if. | |
else { | |
//cep é inválido. | |
limpa_formulário_cep(); | |
alert("Formato de CEP inválido."); | |
} | |
} //end if. | |
else { | |
//cep sem valor, limpa formulário. | |
limpa_formulário_cep(); | |
} | |
}); | |
////////////////////////////////////////////////////// | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment