Filter library states and cities cities-states-js

2

The code below is working fine (using cities-states-js ), I'd like you to see just the state of Minas Gerais and São Paulo , how do I?

<script type="text/javascript" src="http://cidades-estados-js.googlecode.com/files/cidades-estados-1.2-utf8.js"></script><scripttype="text/javascript">
window.onload = function() {

  new dgCidadesEstados({
    estado: document.getElementById('estado'),
    cidade: document.getElementById('cidade'),
     estadoVal: '<%=Request("estado") %>',
     cidadeVal: '<%=Request("cidade") %>'
  });
}
</script>


</head>
<body>    
<form id="sistema" name="sistema" method="post" action="">
<label>Estado</label>
    <select id="estado" name="estado"></select>
    <label>Cidade</label>
    <select id="cidade" name="cidade"></select>
</form>
</body>
    
asked by anonymous 17.06.2015 / 22:20

2 answers

4

Why do not you delete the states you do not want ? This saves 60 kB of your users band.

In the link above you have a version where I deleted the other states. You can copy and serve the file of your server. The result is this: link

    
17.06.2015 / 22:27
6

I suggest that after running dgCidadesEstados , you can use removeChild , for this you will need two loops and a if , for example:

  

Note: I recommend upgrading the library to version 1.4 (27/05 / Github and googlecode are not hosts (cdns) of codes, I recommend that you copy .js to your server

var estados = document.getElementById('estado');
var cidades = document.getElementById('cidade');
    
cidades.onchange = function()
{
    if (cidades.value !== "") {
        //Para o redirecionamento troque esta linha por window.location
        //veja o exemplo no final da resposta para ter um exemplo
        alert(estados.value + " - " + cidades.value);
    }
};

new dgCidadesEstados({
    estado: estados,
    cidade: cidades,
    estadoVal: '<%=Request("estado") %>',
    cidadeVal: '<%=Request("cidade") %>'
});

var opts = estados.getElementsByTagName("option");
var i = 0, j = opts.length, e, remove = [];

for (; i < j; i++) {
    e = opts[i];
    if (e.value !== "" && e.value !== "MG" && e.value !== "SP") {
        //Pega o elemento que será removido e adiciona ao vetor/array
        remove.push(e);
    }
}

i = 0;
j = remove.length;

for (; i < j; i++) {
    //Remove todos que são diferentes de Minas Gerais, São Paulo e vazio (este ultimo equivale ao "Selecione um estado")
    estados.removeChild(remove[i]);
}
<script src="//rawgit.com/robertocr/cidades-estados-js/master/cidades-estados-1.4-utf8.js"></script>
<select id="estado"></select>
<select id="cidade"></select>

If you want to redirect after selecting the city, use the event change , as in the example the beginning of the code should look like this ( link ):

window.onload = function() {
    var estados = document.getElementById('estado');
    var cidades = document.getElementById('cidade');

    cidades.onchange = function()
    {
        if (cidades.value !== "") {
            //Basta modificar está linha conforme a necessidade
            window.location = "pagina.asp?estado=" + estados.value + "&cidade=" + cidades.value
        }
    };

    new dgCidadesEstados({
        estado: estados,
        cidade: cidades,
        estadoVal: '<%=Request("estado") %>',
        cidadeVal: '<%=Request("cidade") %>'
    });

    var opts = estados.getElementsByTagName("option");
    var i = 0, j = opts.length, e, remove = [];

    for (; i < j; i++) {
        e = opts[i];
        if (e.value !== "" && e.value !== "MG" && e.value !== "SP") {
            //Pega o elemento que será removido e adiciona ao vetor/array
            remove.push(e);
        }
    }

    i = 0;
    j = remove.length;

    for (; i < j; i++) {
        //Remove todos que são diferentes de Minas Gerais, São Paulo e vazio (este ultimo equivale ao "Selecione um estado")
        estados.removeChild(remove[i]);
    }
};
    
18.06.2015 / 05:16