JavaScript perdendo escopo da Aplicação

6 respostas
atilaraphael

Bom dia,

tenho este código javascript (jQuery) para carregar o “combo cidade” com as cidades da uf selecionada, no meu computador quando depuro com o firebug aparece a url perfeitamente e carrega o “combo cidade”. só que no computador do meu amigo não aparece a url corretamente, e da erro 404.

$('#uf').change(function(){
    	$('#cidade option').remove();
    	$('<option>Selecione</option>').appendTo('#cidade');
            var value = $('#uf').val();  
            $.ajax({
                url: '../cidade/'+ value,  
                dataType: 'json',  
                success: function(json) {
                    var cidade = json.list;  
                    for(var i in cidade) {
                        $('<option value="' + cidade[i].codigo + '">' + cidade[i].nomeCidade + '</option>').appendTo('#cidade');
                    }  
                }  
            });   
});

No meu pc, depurando com o firebug a url aparece assim:

GET http://localhost:8080/MinhaAplicacao/cidade/ES 200 OK 3.11s

No computador do meu colega ele “come” o nome da aplicação

GET http://localhost:8080/cidade/ES 404 Not Found 34ms

Alguém sabe com resolver?

Obs.: Este código esta dentro de WebContent > javascripts > custon.js

6 Respostas

R

vc esta utilizando algum framework web que tenha jquery nele?

tenta isto aqui:

var $j = jQuery.noConflict(); // <-isto no topo

//depois
$j(function(){
                $j('#uf').change(function(){  
                         $('#cidade option').remove();  
                        $('<option>Selecione</option>').appendTo('#cidade');  
                         var value = $('#uf').val();    
                 $.ajax({  
                    url: '../cidade/'+ value,    
                    dataType: 'json',    
                    success: function(json) {  
                        var cidade = json.list;    
                        for(var i in cidade) {  
                            $('<option value="' + cidade[i].codigo + '">' + cidade[i].nomeCidade + '</option>').appendTo('#cidade');  
                        }    
                    }    
                });     
    });  

}
R

só mais uma dúvida, qual é o seu browser e versão? e do seu amigo?

atilaraphael

Bom dia rjbcordeiro,

tentei utilizar o jQuery.noConflict() mas também não funcionou. Mas acho que não é conflito, pois no meu pc não acontece este problema.

Estamos utilizando a mesma versão de browser FF 5.0, IE 8 e Chrome 12.0.7…

atilaraphael

Importante:

Estamos trabalhando no mesmo projeto utilizando o SubVersion para fazer o controle de versão

R

dá uma olhada aqui e ve se te ajuda:

http://www.learntechnology.net/content/ajax/jquery_options.jsp

atilaraphael

Olá rjbcordeiro

Não é bem isso, o problema é que no computador do meu colega ele perde o nome da aplicação.

Mas eu consegui resolver o problema de uma forma “macarrônica” eu coloquei o código javascript dentro da minha página jsp e utilizei a tag do <c:url>

Ficou assim

<script type="text/javascript">
$(function (){
   $('#uf').change(function(){  
           $('#cidade option').remove();  
           $('<option>Selecione</option>').appendTo('#cidade');  
               var value = $('#uf').val();    
               $.ajax({  
                   url: '<c:url value="/cidade/"/>'+ value,    
                   dataType: 'json',    
                   success: function(json) {  
                       var cidade = json.list;    
                       for(var i in cidade) {  
                           $('<option value="' + cidade[i].codigo + '">' + cidade[i].nomeCidade + '</option>').appendTo('#cidade');  
                       }    
                   }    
               });     
    });
});
</script>

Eu sei que é muito feio programar assim, mas foi minha última alternativa. Se alguém tiver uma solução melhor eu agradeço muito se compartilhar comigo.

Criado 28 de julho de 2011
Ultima resposta 28 de jul. de 2011
Respostas 6
Participantes 2