aquí te dejo el script definitivo (al menos yo creo que es el mejor).
es este codigo con el mismo html del último.
Cita: <script>
var anterior; color=new Array();
color["Rojo"]=true;
color["Verde"]=true;
color["Azul"]=true;
function verif(s){ if(!color[s.value] && s.selectedIndex>0){
alert("El color "+s.value+" ya ha sido seleccionado.");
s.value=anterior;
return false
}
color[s.value]=false;
if(anterior!="Elige color"){
color[anterior]=true;
}else{
color[s.value]=false;
}
} </script>
Cita: He probado el segundo script que exponias tambien...pero me gusta menos...porque si cojes y seleccionas el mismo color...no te pone el Index=0 si no el que habia elegido anteriormente (y en el caso de mi script, tambien hago la validacion para que si es el index=0 no deje enviar el formulario y con el segundo script...si me deja el index en el mismo...pues se podrian pasar 2 opciones iguales.
esto último creo que no ocurre en ningún caso (lo probé y nunca ocurrió).
Ademas no interfiere en la validación que estás utilizando para que ningún select quede sin color elegido (es mas, creo que es lo correcto).
saludos