$(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();
});
}
});
});