Foros del Web » Programando para Internet » Javascript »

Evitar que se desplieguen las opciones de un select

Estas en el tema de Evitar que se desplieguen las opciones de un select en el foro de Javascript en Foros del Web. Hola a tod@s, estoy utilizando la librería Prototype para mostrar las opciones de un select en una ventana emergente sólo en algunos casos. Controlo la ...
  #1 (permalink)  
Antiguo 23/01/2008, 09:50
 
Fecha de Ingreso: enero-2008
Mensajes: 2
Antigüedad: 16 años, 3 meses
Puntos: 0
Evitar que se desplieguen las opciones de un select

Hola a tod@s, estoy utilizando la librería Prototype para mostrar las opciones de un select en una ventana emergente sólo en algunos casos.

Controlo la aparición de la ventana mediante el evento onfocus del select, pero en los casos en los que tengo muchas opciones me está apareciendo el efecto de apertura del select, lo cual está ralentizando mucho la carga de la ventana.

¿Alguien sabe como puedo evitar que se desplieguen las opciones del select?

Gracias
  #2 (permalink)  
Antiguo 23/01/2008, 18:46
Avatar de Negora  
Fecha de Ingreso: agosto-2003
Mensajes: 122
Antigüedad: 20 años, 8 meses
Puntos: 5
Re: Evitar que se desplieguen las opciones de un select

Poniendo un ejemplo supongo que la gente te podrá ayudar mejor.
  #3 (permalink)  
Antiguo 09/02/2008, 20:27
 
Fecha de Ingreso: enero-2008
Mensajes: 8
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: Evitar que se desplieguen las opciones de un select

hola si es lo que entendi, yo tenia el mismo problema necesitaba que no se desplegara las opciones de un select cuando se seleccionaba la otra lista y yo lo resolvi asi

function Otros3() {

var valor=0,desc,bandera;




if (document.fecha.servicio.selectedIndex >= 0 ) { //aqui leo la lista
claved = new Array();
descrd = new Array();
idx_dpt = 0;
claved[idx_dpt] =" ";
descrd[idx_dpt] =new Option(" ");
idx_dpt = idx_dpt + 1;

}


k=0;
while (document.fecha.otros1.length > 0)
document.fecha.otros1.options[document.fecha.otros1.length - 1] = null;
for (k = 0; k < descrd.length; k= k + 1) {
document.fecha.otros1.options[k] = descrd[k];
document.fecha.otros1.options[k].value = claved[k]; // aqui pongo en blanco la misma lista
}
document.fecha.otros1.options[0].selected = true;
if (document.fecha.otros1.length <= 0) {
document.fecha.otros2.options[k] = new Option("Sin Dato");
document.fecha.otros1.options[k].value = 0 ;
document.fecha.otros1.options[k].selected = true;
return false;
}


claved = new Array();
descrd = new Array();
idx_dpt = 0;
claved[idx_dpt] ="Cirugia General";
descrd[idx_dpt] =new Option("Cirugia General"); // y aqui lleno la otra lista que me desplegara
idx_dpt = idx_dpt + 1;

claved[idx_dpt] ="GinecoObstetricia";
descrd[idx_dpt] =new Option("GinecoObstetricia");
idx_dpt = idx_dpt + 1;

claved[idx_dpt] ="Medicina Interna";
descrd[idx_dpt] =new Option("Medicina Interna");
idx_dpt = idx_dpt + 1;

claved[idx_dpt] ="Neonatologia";
descrd[idx_dpt] =new Option("Neonatologia");
idx_dpt = idx_dpt + 1;

claved[idx_dpt] ="Pediatria";
descrd[idx_dpt] =new Option("Pediatria");
idx_dpt = idx_dpt + 1;


k=0;
while (document.fecha.servicio.length > 0)
document.fecha.servicio.options[document.fecha.servicio.length - 1] = null;
for (k = 0; k < descrd.length; k= k + 1) {
document.fecha.servicio.options[k] = descrd[k];
document.fecha.servicio.options[k].value = claved[k];

}
document.fecha.servicio.options[0].selected = true;
if (document.fecha.servicio.length <= 0) {
document.fecha.servicio.options[k] = new Option("Sin Dato");
document.fecha.servicio.options[k].value = 0 ;
document.fecha.servicio.options[k].selected = true;
return false;
} //document.fecha.serv_refiere.value=" "
}


<input name="radiobutton" type="radio" value="radiobutton" onclick = "Otros2();"/>
Deshabilitar</div>

con este boton desabilito la lista que deseo

espero les sirva cualquier duda ya saben ok
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:20.