Pessoal ,preciso que o select das cidades tenha options de acordo com o estado escolhido. Consegui com o código abaixo,porém quando mudo o estado, as cidades anteriores se juntam com as cidades do estado atualmente selecionado. podem ajudar?
<!DOCTYPE html>
<html>
<head>
<title>estados</title>
<meta charset="utf-8">
</head>
<body onload="mods()">
Estado: <select id="estados" onchange ="rj.metodo1();sp.metodo1();mg.metodo1()">
<option></option>
</select><br><br>
Cidade: <select id="cidades">
<option></option>
</select>
</body>
</html>
<script type="text/javascript">
var estados = document.getElementById('estados')
var cidades = document.getElementById('cidades')
/*Método que cada objeto de estado chama quando selecionado no select 'estados'*/
var carregarSelects =function(){
if (estados.value == this.nome) {
for (var i = 0; i < this.cidades.length; i++){
var item = document.createElement('option')
item.text = this.cidades[i]
cidades.appendChild(item)
}}}
</script>
<!--Obejetos-->
<script type="text/javascript">
var arrayEstados = ['Rio de Janeiro','São paulo','Minas Gerais']
var rj = {
nome: 'Rio de Janeiro',
cidades: ['Belford Roxo','São joão de meriti','Duque de Caxias'],
metodo1: carregarSelects
}
var sp = {
nome: 'São paulo',
cidades: ['Diadema','Bauru','Suzano'],
metodo1: carregarSelects
}
var mg = {
nome: 'Minas Gerais',
cidades: ['Belo Horizonte','Betim','Contagem'],
metodo1: carregarSelects
}
function mods(){
var listaEstados = document.getElementById('estados')
for (var i = 0; i < arrayEstados.length; i++) {
var item = document.createElement('option')
item.text = arrayEstados[i]
listaEstados.appendChild(item)
}
}
</script>