Foros del Web » Programando para Internet » Javascript »

según opción de select aparezca uno u otro campo

Estas en el tema de según opción de select aparezca uno u otro campo en el foro de Javascript en Foros del Web. Voy a ser sincero, estoy muy "pez" en la programación con Java Script, apenas desarrollo nada en este lenguaje, pero en este momento lo preciso ...
  #1 (permalink)  
Antiguo 02/08/2004, 02:19
 
Fecha de Ingreso: noviembre-2003
Ubicación: Madrid
Mensajes: 353
Antigüedad: 21 años, 1 mes
Puntos: 1
según opción de select aparezca uno u otro campo

Voy a ser sincero, estoy muy "pez" en la programación con Java Script, apenas desarrollo nada en este lenguaje, pero en este momento lo preciso por razones técnicas y mi problema es el siguiente:

Segun la opción que se selecciona de una lista desplegable, se muestran una serie de campos de un formulario que están en capas (Capas con SPAN) diferentes. el objeto es que según la opción seleccionada de la lista desplegable le aparezcan unos campos u otros a rellenar.

ahora mismo mi código es este:

1.- Con este sencillo script le digo que si selecciona una vez una opción de la lista, muestre una capa y su vuelve a seleccionarlo la pone invisible:

<script language="JavaScript">
function flip(rid)
{
current=(document.getElementById(rid).style.displa y == 'none') ? 'block' : 'none';
document.getElementById(rid).style.display = current;
}

</script>

En la lista despleble:

<select name="select" onChange="flip(this.value); return false;">
<option value="0" selected>Descarga gratuita</option>
<option value="pago">Descarga de pago previo</option>
<option value="SMS">Descarga por SMS</option>
</select>

Lo que preciso es que según la opción seleccionada muestre la capa correspondiente, pero a la vez oculte las otras. Ahora mismo si selecciono una opción, muestra su capa, si selecciono otra muestra tambien esta segunda, pero no oculta a la primera...

Espero haberme explicado, y desde ya mi agradecimiento, porque sé que esto para los que programais en Script es muy fácil....

Thanks
__________________
Lo menos frecuente en este mundo es vivir. La mayoría de la gente existe, eso es todo...

Última edición por KarlanKas; 02/08/2004 a las 02:38 Razón: Título original: "Houston, Tenemos Un Problema..."
  #2 (permalink)  
Antiguo 02/08/2004, 02:36
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 8 meses
Puntos: 1284
Hola yomesmo:

Yo crearía una función que podría ser ocultarTodo(); que pusiera todas las capas con display: none; y que se ejecutase al principio de tu función flip.
Por cierto, si se activa con los cambios del select no tendría mucho sentido la alternativa entre mostrar y ocultar, ya que si se vuelve a seleccionar el mismo item no existe el evento onchange, y otra cosa que me parece que sobra es el return false ya que con el select no se envía el formulario.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 02/08/2004, 02:41
 
Fecha de Ingreso: noviembre-2003
Ubicación: Madrid
Mensajes: 353
Antigüedad: 21 años, 1 mes
Puntos: 1
Exactamente eso es lo que preciso, el código que estoy utilizando ahora mismo es una cosa muy elemental que utilizo para mostrar u ocultar capas mediante un link, pero esto, a pesar de su sencillez, a mi me desborda (Lo mio es el ASP y hacer el amor...). si me puedes ayudar diciéndome donde encontrar algún código de ejemplo u orientativo, te lo agradeceré mucho...scado en los foros, pero no he encontrado algo que me sirva...

Salu2
__________________
Lo menos frecuente en este mundo es vivir. La mayoría de la gente existe, eso es todo...
  #4 (permalink)  
Antiguo 02/08/2004, 02:55
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 8 meses
Puntos: 1284
Hola otra vez:

Voy a intentar hacerlo:

function ocultarTodo() {
document.getElementById("capa1").style.display = "none";
document.getElementById("capa2").style.display = "none";
document.getElementById("capa3").style.display = "none";
document.getElementById("capa4").style.display = "none";
// debes cambiar capa1.. capa4 por los ids de las verdaderas capas
}

function flip(rid)
{
ocultarTodo();
document.getElementById(rid).style.display = "block";
}

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 02/08/2004, 03:04
 
Fecha de Ingreso: noviembre-2003
Ubicación: Madrid
Mensajes: 353
Antigüedad: 21 años, 1 mes
Puntos: 1
Gracias Caricatos, ha funcionado a la primera, estoy en deuda contigo...

Como decimos los moteros:

Salu2 en V´s
__________________
Lo menos frecuente en este mundo es vivir. La mayoría de la gente existe, eso es todo...
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 19:17.