Pais Estado Cidade Ajax?

Pessoal estou testando montar 3 combobox :

Pais-> Estado --> Municipio

Mas não monta municipio :

Segue codigo:

[code]<%@taglib prefix=“sql” uri=“http://java.sun.com/jsp/jstl/sql”%>
<%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c” %>
<html> <title>JLRaptorAjax</title>
<head>
<script type=“text/javascript” charset=“utf-8” src="<c:url value="/js/jquery-1.4.2.min.js"/>"></script>
<script type=“text/javascript” charset=“utf-8” src="<c:url value="/js/jquery.jqia.selects.js"/>"></script>
<script type=“text/javascript” charset=“utf-8” src="<c:url value="/js/main.js"/>"></script>
<script type=“text/javascript” charset=“utf-8” src="<c:url value="/js/main_1.js"/>"></script>

    &lt;script type="text/javascript"&gt;  //ajusata estado
        $(function(){
            $('#loading').hide();
            $('#paisDropdown').change(function(){
                adjustEstadoDropdown();
            }).change();
            $('#loading').ajaxStart(function() {
                $(this).show();
            });
            $('#loading').ajaxStop(function(){
                $(this).hide();
            });

        });
    &lt;/script&gt;
    
    &lt;script type="text/javascript"&gt;//ajusta municipio
        $(function(){
            $('#loading').hide();
            $('#estadoDropdown').change(function(){
                adjustMunicipioDropdown();
            }).change();
            $('#loading').ajaxStart(function() {
                $(this).show();
            });
            $('#loading').ajaxStop(function(){
                $(this).hide();
            });

        });
    &lt;/script&gt;
    
&lt;/head&gt;
&lt;body&gt;
    &lt;form action="" &gt;
        &lt;h1&gt;Formulário de Cadastro&lt;/h1&gt;
        &lt;table&gt;
            &lt;tr&gt;
                &lt;td&gt;
                    &lt;label&gt;País:&lt;/label&gt;
                &lt;/td&gt;
                &lt;td&gt;
                    &lt;select id="paisDropdown"&gt;
                        &lt;option&gt;Selecione o Pais&lt;/option&gt;
                        &lt;c:forEach var="pais" items="${paiss}"&gt;
                            &lt;option value="${pais.sigla}"&gt;${pais.nome} - ${pais.sigla}&lt;/option&gt;
                        &lt;/c:forEach&gt;
                    &lt;/select&gt;
                &lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td&gt;
                    &lt;label&gt;Estado:&lt;/label&gt;
                &lt;/td&gt;
                &lt;td&gt;
                    
                    &lt;select id="estadoDropdown"&gt;
                        <img   /img/loading.gif"/>&quot;&gt;
                    &lt;/select&gt;
                      
                &lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;td&gt;
                    &lt;label&gt;Municipio:&lt;/label&gt;
                &lt;/td&gt;
                &lt;td&gt;
                    
                    &lt;select id="municipioDropdown"&gt;
                        <img   /img/loading.gif"/>&quot;&gt;
                    &lt;/select&gt;
                &lt;/td&gt;
            &lt;/tr&gt;
          &lt;/table&gt;
    &lt;/form&gt;
&lt;/body&gt;

</html>[/code]

[code]function adjustMunicipioDropdown() {
var estadoValue = $(’#estadoDropdown’).val();
var dropdownSet = $(’#municipioDropdown’);
if (estadoValue.length == 0)
{
dropdownSet.attr(“disabled”, true);
dropdownSet.emptySelect();
}
else
{
dropdownSet.attr(“disabled”, false);

	$.getJSON('/VRaptorAjax/index/buscaMunicipios.json', {
		uf : estadoValue
	}, function(data) {
		dropdownSet.loadSelect(data);
	});
}

}

[/code]

[code]function adjustEstadoDropdown() {
var paisValue = $(’#paisDropdown’).val();
var dropdownSet = $(’#estadoDropdown’);
if (paisValue.length == 0)
{
dropdownSet.attr(“disabled”, true);
dropdownSet.emptySelect();
}
else
{
dropdownSet.attr(“disabled”, false);

	$.getJSON('/VRaptorAjax/index/buscaEstados.json', {
		pais : paisValue
	}, function(data) {
		dropdownSet.loadSelect(data);
	});
}

}

[/code]

[code]package com.tnogueira.ajax;
import java.util.List;
import br.com.caelum.vraptor.Get;
import br.com.caelum.vraptor.Path;
import br.com.caelum.vraptor.Resource;
import br.com.caelum.vraptor.Result;
import br.com.caelum.vraptor.view.Results;
import com.tnogueira.dao.EstadoDao;
import com.tnogueira.dao.MunicipioDao;
import com.tnogueira.dao.PaisDao;
import com.tnogueira.model.Estado;
import com.tnogueira.model.Municipio;
import com.tnogueira.model.Pais;

@Resource
public class IndexController {

    private Result result;
private Result resultM;
private EstadoDao daoE;
private MunicipioDao daoM;
    private PaisDao daoP;

public IndexController(
    Result result,
    Result resultM,
    EstadoDao daoE,
    MunicipioDao daoM,PaisDao daoP)
    {
this.result = result;
this.resultM = resultM;
this.daoE = daoE;
this.daoP = daoP;
    this.daoM = daoM;
    
}
@Path("/")
public void index(){
    this.resultM.include("paiss", daoP.listaTudoP());
    this.result.include("estados", daoE.listaTudoE()); //add
    this.resultM.include("municipios", daoM.listaTudoM()); //add
}
    @Get @Path("/index/buscaPais.json")
public void loadPais(String nome){
	List&lt;Pais&gt; pais = daoP.listaP(nome);
	       result.use(Results.json())
                         .withoutRoot()
                         .from(pais)
		     .exclude("id")
		     .serialize();
}
@Get @Path("/index/buscaEstados.json")
public void loadEstados(String pais){
	List&lt;Estado&gt; estados = daoE.listaE(pais);
               result.use(Results.json())
                         .withoutRoot()
                         .from(estados)
		     .exclude("id")
		     .serialize();
}
@Get @Path("/index/buscaMunicipios.json")
public void loadMunicipios(String uf){
	List&lt;Municipio&gt; municipios = daoM.listaM(uf);
	       result.use(Results.json())
                         .withoutRoot()
                         .from(municipios)
		     .exclude("id")
		     .serialize();
}
    @Get @Path("/index/listatudoP")
public void listatudoP(String nome){
	List&lt;Pais&gt; pais = daoP.listaP(nome);
}
    @Get @Path("/index/listatudoE")
public void listatudo(String pais){
	List&lt;Estado&gt; estados = daoE.listaE(pais);
}
@Get @Path("/index/listatudoM")
public void listatudoM(String uf){
	List&lt;Municipio&gt; municipios = daoM.listaM(uf);
}

}
[/code]

[code]package com.tnogueira.dao;
import java.util.List;
import org.hibernate.Session;
import org.hibernate.criterion.MatchMode;
import org.hibernate.criterion.Restrictions;
import br.com.caelum.vraptor.ioc.Component;
import com.tnogueira.model.Estado;

@Component
public class EstadoDao {

private final Session session;

public EstadoDao(Session session){
	this.session = session;
}
@SuppressWarnings("unchecked")
public List&lt;Estado&gt; listaE(String pais){
    	return session.createCriteria(Estado.class)
			.add(Restrictions.ilike("pais", pais, MatchMode.ANYWHERE))
			.list();
}
@SuppressWarnings("unchecked")
public List&lt;Estado&gt; listaTudoE(){
	return this.session.createCriteria(Estado.class).list();
}
}

[/code]

[code]package com.tnogueira.dao;
import java.util.List;
import org.hibernate.Session;
import org.hibernate.criterion.MatchMode;
import org.hibernate.criterion.Restrictions;
import br.com.caelum.vraptor.ioc.Component;
import com.tnogueira.model.Municipio;

@Component
public class MunicipioDao {

private final Session session;

public MunicipioDao(Session session){
	this.session = session;
}
@SuppressWarnings("unchecked")
public List&lt;Municipio&gt; listaM(String uf){
	return session.createCriteria(Municipio.class)
			.add(Restrictions.ilike("uf", uf, MatchMode.ANYWHERE))
			.list();
}
@SuppressWarnings("unchecked")
public List&lt;Municipio&gt; listaTudoM(){
	return this.session.createCriteria(Municipio.class).list();
}
    
}

[/code]

[code]package com.tnogueira.dao;
import java.util.List;
import org.hibernate.Session;
import org.hibernate.criterion.MatchMode;
import org.hibernate.criterion.Restrictions;
import br.com.caelum.vraptor.ioc.Component;
import com.tnogueira.model.Pais;

@Component
public class PaisDao {

private final Session session;

public PaisDao(Session session){
	this.session = session;
}
@SuppressWarnings("unchecked")
public List&lt;Pais&gt; listaP(String nome){
	return session.createCriteria(Pais.class)
			.add(Restrictions.ilike("nome", nome, MatchMode.ANYWHERE))
			.list();
}
    @SuppressWarnings("unchecked")
public List&lt;Pais&gt; listaTudoP(){
	return this.session.createCriteria(Pais.class).list();
}

}

[/code]


Acho que o Problema e com esse JS.



(function($) {
  $.fn.emptySelect = function() {
    return this.each(function(){
      if (this.tagName=='SELECT') this.options.length = 0;
    });
  }

  $.fn.loadSelect = function(data) {
    return this.emptySelect().each(function(){
      if (this.tagName=='SELECT') {
        var selectElement = this;
        $.each(data,function(index,optionData){
        	var option = new Option(optionData.nome,optionData.nome);
          if ($.browser.msie) {
            selectElement.add(option);
          }
          else {
            selectElement.add(option,null);
          }
        });
      }
    });
  }
})(jQuery);

NÃO MONTA OS MUNICIPIO:

https://lh3.googleusercontent.com/–g1y_IuOq8Y/TgjODgE0CFI/AAAAAAAAEr0/Z-W8WW5Ke34/s1152/bug.png