$(document).ready(function () { // URL do endpoint JSON var urlEndpoint = 'https://cloud.cliente.sebrae.com.br/codigosmunicipio'; // Inicializa o objeto de mapeamento vazio var valoresCidades = {}; // Faz uma solicitação JSON para obter os dados dos mapeamentos $.getJSON(urlEndpoint, function (data) { // Verifica se a resposta é um array e não está vazia if (Array.isArray(data) && data.length > 0) { // A função que será chamada quando o valor do #estados for alterado function atualizarCidades() { // Limpa o objeto de mapeamento valoresCidades = {}; // Itera sobre cada objeto contido na variavel "verificaEstado" na lista data.forEach(function (mapeamento) { // Atribui o valor do Estado na variável verificaEstado var verificaEstado = $("#estados").val(); // Verifica se o objeto tem a propriedade "verificaEstado" if (mapeamento.hasOwnProperty(verificaEstado)) { // Itera sobre as cidades do Estado selecionado e seus códigos e adiciona ao objeto mapeamento[verificaEstado].forEach(function (cidadeObj) { var nomeCidade = Object.keys(cidadeObj)[0]; // Obtém o nome da cidade valoresCidades[nomeCidade] = cidadeObj[nomeCidade]; }); } }); } $.getJSON('https://cloud.cliente.sebrae.com.br/cidadesestados', function (data) { var items = []; var options = ''; $.each(data, function (key, val) { options += ''; }); $("#estados").html(options); $("#estados").change(function () { // Chama a função para atualizar as cidades quando o estado é alterado atualizarCidades(); var options_cidades = ''; var str = ""; $("#estados option:selected").each(function () { str += $(this).text(); }); $.each(data, function (key, val) { if (val.nome == str) { $.each(val.cidades, function (key_city, val_city) { options_cidades += ''; }); } }); $("#cidades").html(options_cidades); }); $("#estados").change(function () { var cidadeSelecionada = $("#cidades").val(); if (valoresCidades.hasOwnProperty(cidadeSelecionada)) { $("#Codigo_Municipio").val(valoresCidades[cidadeSelecionada]); console.log(cidadeSelecionada) } else { $("#Codigo_Municipio").val(''); } }).change(); // Associar valor ao campo codigoCidade quando uma cidade é selecionada $("#cidades").change(function () { var cidadeSelecionada = $("#cidades").val(); if (valoresCidades.hasOwnProperty(cidadeSelecionada)) { $("#Codigo_Municipio").val(valoresCidades[cidadeSelecionada]); } else { $("#Codigo_Municipio").val(''); } }).change(); }); } }); });