rimuovi tutti questi onselect onfocus
codice:
<option value="" onselect,onFocus=" nascondi(this, 'nascosto')" selected>Seleziona</option>
<option value="scelta1" onselect="return visualizza(this, 'nascosto')">scelta1</option>
<option value="scelta2" onselect="return visualizza(this, 'nascosto')">scelta2</option>
<option value="scelta3" onselect="return visualizza(this, 'nascosto')">scelta3</option>
<option value="scelta4" onselect="return visualizza(this, 'nascosto')">scelta4</option>
</select>
lascia solo questo onchange (anche il return non serve)
<select name="seleziona" onchange="visualizza(this, 'nascosto')">
dove la funzione e'
codice:
function visualizza(obj, a){
var el=document.getElementById(a);
if(!el) return;
el.style.display=(obj.selectedIndex!=0)?"block":"none";
}
quest ultima riga valuta il selectedIndex, se e' 0 la prima option e' selezionata e setta il display a none, altrimenti a block
per lavorare con il value, come chiedevi inizialmente, cambiala in
el.style.display=(obj.options[obj.selectedIndex].value!="")?"block":"none";
ciao