O código ao carregar o país por exemplo estava carregando a cidade com o estado antes de o estado ser atualizado.
Preciso chamar funções de forma síncrona consegui resolver parte do problema colocando um intervalo de tempo antes de chamar a função, porém não é a melhor solução.
Como fazer para chamar estas funcões de forma sincrona para primeiro carregar o pais, depois o estado, depois a cidade, depois o bairro ?
function buscar_estados() {
var pais = $('#boxPais').val();
if (pais) {
var url = 'estado.buscar.ajax.php?boxPais=' + pais;
$.get(url, function (dataReturn) {
$('#load_estados').html(dataReturn);
});
window.setTimeout( buscar_cidades, 1000 );
}
}
function buscar_cidades() {
var estado = $('#boxEstado').val();
if (estado) {
var url = 'cidade.buscar.ajax.php?boxEstado=' + estado;
$.get(url, function (dataReturn) {
$('#load_cidades').html(dataReturn);
});
window.setTimeout( buscar_bairros(), 1000 );
}
}
function buscar_bairros() {
var bairro = $('#boxCidade').val();
if (bairro) {
var url = 'bairro.buscar.ajax.php?boxBairro=' + bairro;
$.get(url, function (dataReturn) {
$('#load_bairros').html(dataReturn);
});
window.setTimeout( buscar_logradouros(), 1000 );
}
}
function buscar_logradouros() {
var logradouro = $('#boxBairro').val();
if (logradouro) {
var url = 'logradouro.buscar.ajax.php?boxLogradouro=' + logradouro;
$.get(url, function (dataReturn) {
$('#load_logradouros').html(dataReturn);
});
}
}