Hola
A ver entiendo que las opciones de todos los select son las mismas. Entonces no has de cargar las opciones de todos los select, solo del primero y dependiendo de lo opción seleccionada en el primer select, se mostrarán unas u otras opciones en el segundo y arreglo a lo seleccionado en el segundo ......
Código Javascript
:
Ver original<html>
<head>
<script type="text/javascript">
function getElement(elElemento) {
return document.getElementById(elElemento);
}
var numopciones = 1;
function funcion(val, sel) {
for(var i=1;val.options[i];i++) {
if (val.selectedIndex == 0) {
while(getElement(sel).length > 1) getElement(sel).options[1] = null;
getElement(sel).clear;
break;
}
if (i == val.selectedIndex)
continue;
var selOpciones = new Option(val.options[i].value, val.options[i].text);
eval(getElement(sel).options[numopciones++] = selOpciones);
}
numopciones = 1;
}
</script>
</head>
<body>
<form id="form1" name="form1" method="post" action="">
<select id="idioma1" class="campoTexto" name="idioma1" size="10" onchange="funcion(this,'idioma2')">
<option value="">Idiomas</option>
<option value="Español">Español</option>
<option value="Inglés">Inglés</option>
<option value="Francés">Francés</option>
<option value="Portugués">Portugués</option>
</select>
<select id="idioma2" name="idioma2" size="10" onchange="funcion(this,'idioma3')">
<option value="">Idiomas</option>
</select>
<select id="idioma3" name="idioma3" size="10">
<option value="">Idiomas</option>
</select>
</form>
</body>
</html>
Suerte