VRaptor3 + Ajax + Busca CEP

Olá a todos, eu estou fazendo um form que tem pesquisa por CEP.
quando o campo CEP do form perde o focu o metodo no javascript e chamado:

[code]// 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;> Aguarde, consultando o CEP…");

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

}[/code]Página JSP[code]

Endereço para correspondência

*CEP:

Estado: Selecione AC AL AM AP BA CE DF ES GO MA MG MS MT PA PB PE PI PR RJ RN RO RR RS SC SE SP TO

Cidade:

Bairro:

Logradouro: Selecione Outros Aeroporto Alameda Área Avenida Campo Chácara Colônia Condomínio Conjunto Distrito Esplanada Estação Estrada Favela Fazenda Feira Jardim Ladeira Lago Lagoa Largo Loteamento Morro Núcleo Parque Passarela Pátio Praça Quadra Recanto Residencial Rodovia Rua Setor Sítio Travessa Trecho Trevo Vale Vereda Via Viaduto Viela Vila

Número:

Complemento:

[/code]

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:[code]$.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){
}

});
[/code]
E setar os valores da busca no form!

o que vc pode fazer, é colocar um gifzinho de carregando:
http://www.ajaxload.info/

não tem mto mais q vc pode fazer.

Lucas eu estou querendo algo assim:

[code]function funcaowebservicecep() {
var cep = jQuery(’#cep’).val();
if (cep.length > 7) {
jQuery.ajax({
type : “GET”,
url : “http://cep.republicavirtual.com.br/web_cep.php?formato=javascript&cep=” + cep,
data : “javascript”,
async : true,
beforeSend : function(resultadoCEP) {
jQuery("#imgLoading").html("");
},
success : function(resultadoCEP) {
alert(“Sucesso!”);
if (jQuery.trim(resultadoCEP) != “”) {
eval("var arr = " + resultadoCEP); //cria objeto com o resultado
if (arr.rua != ’ ‘)
jQuery(’#endereco’).attr(‘disabled’,
‘disabled’);
else
jQuery(’#endereco’).attr(‘disabled’, ‘’);

							if (arr.bairro != '')
								jQuery('#bairro').attr('disabled', 'disabled');
							else
								jQuery('#bairro').attr('disabled', '');

							if (arr.cidade != '')
								jQuery('#cidade').attr('disabled', 'disabled');
							else
								jQuery('#cidade').attr('disabled', '');

							if (arr.uf != '')
								jQuery('#estado').attr('disabled', 'disabled');
							else
								jQuery('#estado').attr('disabled', '');

							jQuery('#endereco').attr('value', arr.rua);
							jQuery('#bairro').attr('value', arr.bairro);
							jQuery('#cidade').attr('value', arr.cidade);
							jQuery('#estado').attr('value', arr.uf);
						}
					}
				});
		jQuery("#imgLoading").html("");
	}
}[/code]

certo, e isso não está funcionando?

o jQuery("#imgLoading").html(""); tem que estar no success: ou no complete: do $.ajax

Infelizmente! Isso não está funcionando! É por que eu estou te pedindo ajuda!

Faça os imports e teste ai!
O onSubmit=“validar_form()” do FORM não está funcionando bem no FIREFOX testei com Opera e Safari e funcionou tudo bem!

[code]

Formulário de Cliente " method="post" onSubmit="validar_form()">

Cadastro

Meus Dados
Sou Pessoa Física    Sou Pessoa Jurídica    
*Representante:
*Nome:
CPF:
Sexo: Masculino Feminino Data Nascimento:
*E-mail: *Telefone Principal:
Telefone Secundário:
Endereço
	<td align="right" width="130">*Estado:</td>
	<td align="left" width="150">
		<select name="estado" id="estado">
                <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>
     </td>
	<td align="right" width="130">*Cidade:</td>
	<td align="left" width="150"><input type="text" value="" name="cidade" id="cidade" style="width: 120px;"></td>
</tr>
<tr>
<td align="right" width="130">*Bairro:</td>
	<td align="left" width="150"><input type="text" value="" name="bairro" id="bairro" style="width: 120px;"></td>
	
	<td align="right" width="130">*N&uacute;mero:</td>
	<td align="left" width="150"><input type="text" value="" name="numero" id="numero" maxlength="14" style="width: 120px;"></td>
</tr>
<tr>
	<td align="right" width="130">*Rua:</td>
	<td align="left" width="400" colspan="3">
		<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">&Aacute;rea</option>
				<option value = "Avenida">Avenida</option>														
				<option value = "Campo">Campo</option>
				<option value = "Chácara">Ch&aacute;cara</option>
				<option value = "Colônia">Colônia</option>
				<option value = "Condomínio">Condom&iacute;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&uacute;cleo</option>
				<option value = "Parque">Parque</option>
				<option value = "Passarela">Passarela</option>
				<option value = "Pátio">P&aacute;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&iacute;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" value="" name="endereco" id="endereco" style="width: 280px;">
		</td>
</tr>
<tr>
	<td align="right" width="130">Complemento:</td>
	<td colspan="3" align="left" width="150"><input type="text" value="" name="complemento" id="complemento" style="width: 100%;"></td>
</tr>
*CEP:
Acesso
*Login: *Senha:
*Re-Senha:
[/code]

jehffersson, colar o código inteiro da sua aplicação aqui não vai ajudar a gente a resolver sua dúvida…

poste só as partes relevantes à sua dúvida, assim a gente não precisa ficar perdendo tempo pra entender o seu código inteiro…

enfim… não use , use

$('#id_do_form').submit(function() {
   //a lógica aqui
});

Obrigado pelo esclarecimento, mais eu ainda não tive sucesso!

  • Busca CEP> nada;
  • onSubmit=“validar_form()”;

:cry:

o que acontece?

Vou tentar uma outra hora porque eu estou com muitas dificuldade, e não tenho muito conhecimento com javascripts! Vou baixa e dá uma olhada no Project Calopsita!