beh, ma perché non fai le select così:
codice:
<select name="selGrande" id="selGrande">
<option value="campo vuoto">---</option>
<option value="sel1">Attiva la 1</option>
<option value="sel2">Attiva la 2</option>
<option value="sel3">Attiva la 3</option>
</select>
<select name="sel1" id="sel1">
<option value="campo vuoto">---</option>
</select>
<select name="sel2" id="sel2">
<option value="campo vuoto">---</option>
</select>
<select name="sel3" id="sel3">
<option value="campo vuoto">---</option>
</select>
Poi crei le funzioni JS per popolarle dinamicamente:
codice:
var valuesUno = ["Valore 1", "Valore 2", "Valore 3"];
var valuesDue = ["Valore 1", "Valore 2", "Valore 3"];
var valuesTre = ["Valore 1", "Valore 2", "Valore 3"];
function populateSelect()
{
var idSel = this.options[this.selectedIndex].value;
switch(idSel)
{
case 'sel1':
emptyAll();
for(i = 0; i < valuesUno.length; i++)
{
var opt = document.createElement("option");
opt.value = valuesUno[i];
opt.appendChild(document.createTextNode(valuesUno[i]));
document.getElementById(idSel).appendChild(opt);
}
break;
case 'sel2':
emptyAll();
for(i = 0; i < valuesDue.length; i++)
{
var opt = document.createElement("option");
opt.value = valuesDue[i];
opt.appendChild(document.createTextNode(valuesDue[i]));
document.getElementById(idSel).appendChild(opt);
}
break;
case 'sel3':
emptyAll();
for(i = 0; i < valuesTre.length; i++)
{
var opt = document.createElement("option");
opt.value = valuesTre[i];
opt.appendChild(document.createTextNode(valuesTre[i]));
document.getElementById(idSel).appendChild(opt);
}
break;
}
}
function emptyAll()
{
var sel = document.getElementById("sel1");
for(i = sel.options.length - 1 ; i > 0; i--)
{
sel.remove(i);
}
sel = document.getElementById("sel2");
for(i = sel.options.length - 1 ; i > 0; i--)
{
sel.remove(i);
}
sel = document.getElementById("sel3");
for(i = sel.options.length - 1 ; i > 0; i--)
{
sel.remove(i);
}
}
window.onload = function(){
document.getElementById('selGrande').onchange = populateSelect;
}
Dovrebbe andare