I suggest that after executing dgCidadesEstados
, you can use removeChild
, for this it will be necessary two loops and a if
, example:
Note: recommend updating the library to version 1.4 (27/05/2015 - now it’s maintained on github) github and googlecode are not hosts (cdns) of codes, I recommend that you copy the .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 (/a/70297/3635):
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]);
}
};
But could you help me William ? I opened another question.
– ALEX BROOK
William I’m very bad at this sorry guy.. but I needed a real example. Should then delete new dgCidadesStates({ status: Document.getElementById('state'), city: Document.getElementById('city'), stateVal: '<%=Request("state") %>', cityVal: '<%=Request("city") %>'
– ALEX BROOK
William I apologize, as I told you I am learning now and I was very confused when he asked me to use the removeChild. I used this other code here (http://jsfiddle.net/w938st7q/) and it works better. I was able to remove the cities and manually insert them into the file.
– ALEX BROOK
Dear William, we are lay people seeking knowledge through another who has it. I’m sorry if you can’t understand and be patient about what we’re doing here.
– ALEX BROOK
@ALEXBROOK I’m not upset about your lack of knowledge, I’m upset that I provided you an example of REDIRECTING, you didn’t even say if it worked or not, I tried to guide you, and you insisted that the code ONLY removed the states, even though I explained that it also did the redirect. Now if you had said "William made such a mistake" or "William is not redirecting", I would have understood, but even this you reported. Alex I’m a nice person who was just trying to help you. That’s all.
– Guilherme Nascimento