Foros del Web » Programando para Internet » Javascript »

Mostrar/Ocultar con un Select

Estas en el tema de Mostrar/Ocultar con un Select en el foro de Javascript en Foros del Web. Hola, tengo una duda, como podria poner 3 capas que dependiendo de un select se muestre una u otra. Es decir el select seria algo ...
  #1 (permalink)  
Antiguo 07/08/2007, 17:48
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 22 años, 4 meses
Puntos: 16
Mostrar/Ocultar con un Select

Hola, tengo una duda, como podria poner 3 capas que dependiendo de un select se muestre una u otra.

Es decir el select seria algo asi:
Opcion 1
Opcion 2
Opcion 3

DIV 1
DIV 2
DIV 3

Si selecciono Opcion 1 se muestra DIV 1 y asi...gracias anticipadas
  #2 (permalink)  
Antiguo 07/08/2007, 20:05
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Re: Mostrar/Ocultar con un Select

Primero necesitás ponerle una función al atributo onchange de la lista (para que llame a la función cuando se cambie la opción seleccionada)

<select onchange="mostrar(this.value)">

Luego, crear los option como siempre:

<option value="1">Opcion1</option>

Por último en el HTML necesitás identificar cada DIV:

<div id="div1">

Y ahora hacés la función javascript, que recibe el valor actual seleccionado y cambia el estilo "display" del div correspondiente:

Código:
var div1 = document.getElementById("div1");
var div2 = document.getElementById("div2");
var div3 = document.getElementById("div3");

function mostrar(valor_seleccionado) {
 switch(valor_seleccionado)
 {
  case 1:
   div1.style.display = "block";
   div2.style.display = "none";
   div3.style.display = "none";
   break;
  case 2:
   div1.style.display = "none";
   div2.style.display = "block";
   div3.style.display = "none";
   break;
  case 3:
   div1.style.display = "none";
   div2.style.display = "none";
   div3.style.display = "block";
   break;
 }
}
Esto obviamente se puede hacer más prolijo, por ejemplo guardando cuál fue el último div mostrado para solo ocultar ese, o usar matrices para no tener que especificar todo div por div. Pero si la cantidad de div no es muy alta, te va a servir.


Saludos.
  #3 (permalink)  
Antiguo 07/08/2007, 20:27
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: Mostrar/Ocultar con un Select

Hola:

La idea de alvlin está bien, pero si se guarda la capa visible se simplifica bastante:

var actual = "DIV1";
function tag(id) {
return document.getElementById(id);
}

function mostrar(capa) {
tag(actual).style.display = "none";
actual = capa;
tag(actual).style.display = "block";
}

Luego el select practicamente igual:
<select onchange="mostrar(this.value)"...>

En los values yo prefiero poner el id completo (no merece la pena ahorrar en estas cosas...)

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #4 (permalink)  
Antiguo 08/08/2007, 16:27
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 22 años, 4 meses
Puntos: 16
Re: Mostrar/Ocultar con un Select

y los divs como los pongo de inicio? hidden? se muestran todos y quiero que de entrada solo se muestre el DIV1

aunque los nombres reales son canadas, moderna, santatere
  #5 (permalink)  
Antiguo 08/08/2007, 16:32
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 22 años, 4 meses
Puntos: 16
Re: Mostrar/Ocultar con un Select

bueno, si, ya lo consegui, perdon por preguntar antes de intentar
  #6 (permalink)  
Antiguo 17/09/2007, 16:53
 
Fecha de Ingreso: septiembre-2007
Mensajes: 1
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: Mostrar/Ocultar con un Select

Es posible que ese Select junto con el OnChange() me lleve a mostrar diferentes tipos de campos?
  #7 (permalink)  
Antiguo 27/07/2008, 16:10
 
Fecha de Ingreso: agosto-2006
Ubicación: Santiago (Chile)
Mensajes: 29
Antigüedad: 17 años, 8 meses
Puntos: 0
Respuesta: Mostrar/Ocultar con un Select

Buenas.

Utilicé el script que sale aquí, pero no me funciona en el navegador Safari. El Safari que tengo es para PC.

¿como lo hago para que funcione también en Safari?

Gracias
  #8 (permalink)  
Antiguo 27/07/2008, 18:54
 
Fecha de Ingreso: agosto-2006
Ubicación: Santiago (Chile)
Mensajes: 29
Antigüedad: 17 años, 8 meses
Puntos: 0
Respuesta: Mostrar/Ocultar con un Select

Cita:
Iniciado por guachacapepe Ver Mensaje
Buenas.

Utilicé el script que sale aquí, pero no me funciona en el navegador Safari. El Safari que tengo es para PC.

¿como lo hago para que funcione también en Safari?

Gracias
Retiro lo dicho, no se por que antes no me funciono pero ahora si. No tomen en cuenta mi comentario anterior.

Gracias.
  #9 (permalink)  
Antiguo 27/07/2008, 19:08
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Mostrar/Ocultar con un Select

Hola:

El tema está resuelto y es viejo, así que voy a cerrarlo.

__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
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.
Tema Cerrado




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