// Função única que fará a transação
function getEndereco() {
// Se o campo CEP não estiver vazio
if ($.trim($("#cep").val()) != "") {
if($("#cep").val() == ''){
return false;
}
/*
* Para conectar no serviço e executar o json, precisamos usar a função
* getScript do jQuery, o getScript e o dataType:"jsonp" conseguem fazer
* o cross-domain, os outros dataTypes não possibilitam esta interação
* entre domínios diferentes Estou chamando a url do serviço passando o
* parâmetro "formato=javascript" e o CEP digitado no formulário
* http://cep.republicavirtual.com.br/web_cep.php?formato=javascript&cep="+$("#cep").val()
*/
$("#imgLoading").html("<img src='../img/loading.gif' style='top: 3px;><font size=1> Aguarde, consultando o CEP...</font>");
$.getScript("http://cep.republicavirtual.com.br/web_cep.php?formato=javascript&cep=" + $("#cep").val(), function() {
html_retorno = "";
switch(resultadoCEP['resultado']){
case '1':
html_retorno = "<font color=green>" + unescape(resultadoCEP['resultado_txt'])+"</font>";
$("#tipo_logradouro").val(unescape(resultadoCEP["tipo_logradouro"]));
$("#logradouro").val(unescape(resultadoCEP["logradouro"]));
$("#bairro").val(unescape(resultadoCEP["bairro"]));
$("#cidade").val(unescape(resultadoCEP["cidade"]));
$("#uf").val(unescape(resultadoCEP["uf"]));
$("#numero").focus();
break;
case '2':
html_retorno += "<font color=green>"+unescape(resultadoCEP['resultado_txt'])+"</font>";
$("#cidade").val(unescape(resultadoCEP["cidade"]));
$("#uf").val(unescape(resultadoCEP["uf"]));
$("bairro").focus();
break;
default:
html_retorno += "<font color=red>"+unescape(resultadoCEP['resultado_txt'])+"</font>";
break;
}
$("#imgLoading").html(html_retorno);
// o getScript dá um eval no script, então é só ler!
// Se o resultado for igual a 1
});
}
}
<fieldset>
<legend>Endereço para correspondência</legend>
<p>
<label for="cep">*CEP:</label>
<input type="text" name="cliente.cep" value="${cliente.cep}" id="cep" maxlength="9" style="width: 120px;" /><span id="imgLoading" style="position: relative;"></span>
</p>
<p>
<label for="uf">Estado:</label>
<select id="uf" name="cliente.uf">
<option value="" selected="selected">Selecione</option>
<option value="AC">AC</option>
<option value="AL">AL</option>
<option value="AM">AM</option>
<option value="AP">AP</option>
<option value="BA">BA</option>
<option value="CE">CE</option>
<option value="DF">DF</option>
<option value="ES">ES</option>
<option value="GO">GO</option>
<option value="MA">MA</option>
<option value="MG">MG</option>
<option value="MS">MS</option>
<option value="MT">MT</option>
<option value="PA">PA</option>
<option value="PB">PB</option>
<option value="PE">PE</option>
<option value="PI">PI</option>
<option value="PR">PR</option>
<option value="RJ">RJ</option>
<option value="RN">RN</option>
<option value="RO">RO</option>
<option value="RR">RR</option>
<option value="RS">RS</option>
<option value="SC">SC</option>
<option value="SE">SE</option>
<option value="SP">SP</option>
<option value="TO">TO</option>
</select>
</p>
<p>
<label for="cidade">Cidade:</label>
<input type="text" id="cidade" name="cliente.cidade" value="${cliente.cidade}" />
</p>
<p>
<label for="bairro">Bairro:</label>
<input type="text" id="bairro" name="cliente.bairro" value="${cliente.bairro}" />
</p>
<p>
<label for="rua">Logradouro:</label>
<select id="tipo_logradouro" name="cliente.tipo_logradouro">
<option value="" selected="selected">Selecione</option>
<option value="">Outros</option>
<option value = "Aeroporto">Aeroporto</option>
<option value = "Alameda">Alameda</option>
<option value = "Área">Área</option>
<option value = "Avenida">Avenida</option>
<option value = "Campo">Campo</option>
<option value = "Chácara">Chácara</option>
<option value = "Colônia">Colônia</option>
<option value = "Condomínio">Condomínio</option>
<option value = "Conjunto">Conjunto</option>
<option value = "Distrito">Distrito</option>
<option value = "Esplanada">Esplanada</option>
<option value = "Estação">Estação</option>
<option value = "Estrada">Estrada</option>
<option value = "Favela">Favela</option>
<option value = "Fazenda">Fazenda</option>
<option value = "Feira">Feira</option>
<option value = "Jardim">Jardim</option>
<option value = "Ladeira">Ladeira</option>
<option value = "Lago">Lago</option>
<option value = "Lagoa">Lagoa</option>
<option value = "Largo">Largo</option>
<option value = "Loteamento">Loteamento</option>
<option value = "Morro">Morro</option>
<option value = "Núcleo">Núcleo</option>
<option value = "Parque">Parque</option>
<option value = "Passarela">Passarela</option>
<option value = "Pátio">Pátio</option>
<option value = "Praça">Praça</option>
<option value = "Quadra">Quadra</option>
<option value = "Recanto">Recanto</option>
<option value = "Residencial">Residencial</option>
<option value = "Rodovia">Rodovia</option>
<option value = "Rua">Rua</option>
<option value = "Setor">Setor</option>
<option value = "Sítio">Sítio</option>
<option value = "Travessa">Travessa</option>
<option value = "Trecho">Trecho</option>
<option value = "Trevo">Trevo</option>
<option value = "Vale">Vale</option>
<option value = "Vereda">Vereda</option>
<option value = "Via">Via</option>
<option value = "Viaduto">Viaduto</option>
<option value = "Viela">Viela</option>
<option value = "Vila">Vila</option>
</select>
<input type="text" id="logradouro" name="cliente.logradouro" value="${cliente.logradouro}" maxLength="60" style=" width:470px;" />
</p>
<p>
<label for="Numero">Número:</label>
<input type="text" id="numero" name="cliente.numero" value="${cliente.numero}" style=" width:50px;" maxlength="5"/>
</p>
<p>
<label for="complemento">Complemento:</label>
<input type="text" id="complemento" name="cliente.complemento" value="${cliente.complemento}" style=" width:470px;" />
</p>
</fieldset>
Agora vamos as duvidas.
Meu problema é que quando a requisição demora muito não aparece nada para o usuário!
Quando não tem conectividade com o Servidor Web, simplesmente não falas nada!
Eu queria saber se alguém tem alguma ideia de como fazer com o Ajax?
Ex:$.ajax({
type: "GET",
url: "http://cep.republicavirtual.com.br/web_cep.php?formato=javascript&cep=" + $("#cep").val(),
dataType: "script"
cache: false,
async: false,
timeout: 30000,
success: function(msn){
}
});
