Foros del Web » Programando para Internet » Javascript »

cambiar estilo con el valor de un input

Estas en el tema de cambiar estilo con el valor de un input en el foro de Javascript en Foros del Web. Hola a todos, Necesito mostrar y ocultar capas dependiendo del valor de un input. El valor del input "nbAdultos" lo cambio con otra funcion JavaScript ...
  #1 (permalink)  
Antiguo 27/06/2008, 11:45
Avatar de chiquirf  
Fecha de Ingreso: noviembre-2005
Ubicación: Madrid
Mensajes: 215
Antigüedad: 18 años, 5 meses
Puntos: 3
cambiar estilo con el valor de un input

Hola a todos,

Necesito mostrar y ocultar capas dependiendo del valor de un input.

El valor del input "nbAdultos" lo cambio con otra funcion JavaScript (por eso está como readOnly) y ahí no tengo problema.

La idea es que haga lo siguiente:

Inicialmente la capa 1 está visible y el valor por defecto del input es "1" y todas las demás capas estan en "hidden", la idea es que se muestre la cantidad de capas dependiendo del valor del input siguiendo esta lógica:

si es "1" -> muestra NomAdul1, las demás ocultas.
si es "2" -> muestra NomAdul1 y NomAdul2, el resto ocultas.
si es "3" -> muestra NomAdul1, NomAdul2 y NomAdul3, el resto ocultas.
si es "4" -> muestra todas.

He intentado hacer esto, el navegador no me da error pero no hace nada.

¿que estoy haciendo mal????

Gracias de antemano por la ayuda

Saludos


AQUI VA LOS CODIGOS:


Código:

function showNames(){
	var Adultos;
	var numAdult = document.this;
	Adultos = numAdult.value;
	if (Adultos == 1) { 
                      document.capa1.style.visibility = "visible";
                }
	if (Adultos == 2) { 
                      document.NomAdul1.style.visibility = "visible";
                      document.NomAdul2.style.visibility = "visible";
                }
	if (Adultos == 3) { 
                      document.NomAdul1.style.visibility = "visible";
                      document.NomAdul2.style.visibility = "visible";
                      document.NomAdul3.style.visibility = "visible";
                }
	if (Adultos == 4) { 
                      document.NomAdul1.style.visibility = "visible";
                      document.NomAdul2.style.visibility = "visible";
                      document.NomAdul3.style.visibility = "visible";
                      document.NomAdul4.style.visibility = "visible";
                }

}

Código HTML:
<input id="nbAdultos" readonly="readOnly" size="1" value="1"  name="nbAdultos" onchange="showNames();" />


<div id="NomAdul1" style="visibility:visible;">Nombre 1</div>
<div id="NomAdul2" style="visibility:hidden;">Nombre 2</div>
<div id="NomAdul3" style="visibility:hidden;">Nombre 3</div>
<div id="NomAdul4" style="visibility:hidden;">Nombre 4</div> 
  #2 (permalink)  
Antiguo 27/06/2008, 14:56
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Exclamación Respuesta: cambiar estilo con el valor de un input

¿Ya intentaste colocando comillas?
Código:
if (Adultos == "1") {}
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 27/06/2008, 20:43
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Respuesta: cambiar estilo con el valor de un input

Hola:

Código PHP:
    var Adultos;
    var 
numAdult document.this;
    
Adultos numAdult.value
¿Qué estas intentando hacer aqui? ¿Obtener el valor del campo nbAdultos? Será más correcto así:
Código PHP:
function showNames(caja) {
  var 
Adultos caja.value;    // si quieres ponle un parseInt() para más seguridad
  // ... 
y luego la llamada sería así:
Código HTML:
<input id="nbAdultos" onchange="showNames(this);" .... /> 

Saludos
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #4 (permalink)  
Antiguo 28/06/2008, 12:21
Avatar de chiquirf  
Fecha de Ingreso: noviembre-2005
Ubicación: Madrid
Mensajes: 215
Antigüedad: 18 años, 5 meses
Puntos: 3
Respuesta: cambiar estilo con el valor de un input

Gracias por las respuesas, pero no me sale de ninguna de las 2 formas.

He probado tambien quitando el atributo ReadOnly al input y cambiando el valor a mano y nada.

He encontrado otro codigo que hace algo parecido pero pulsando enlaces, a ver si viendolo logro solucionar mi problema con el input, ya les contare como me fue.

Si alguien tene otra idea que me avise porfa.

Gracias
  #5 (permalink)  
Antiguo 28/06/2008, 14:34
Avatar de chiquirf  
Fecha de Ingreso: noviembre-2005
Ubicación: Madrid
Mensajes: 215
Antigüedad: 18 años, 5 meses
Puntos: 3
Respuesta: cambiar estilo con el valor de un input

NADA DE NADA....

En ejemplo que les mencione era con el evento OnClick en un enlace, y en este caso estoy usando el evento OnChange y aquí está el problema, no me funciona este evento, ya que he metido un alert("Hola") dentro de la funcion y nada...

Este es el input que exactamente tengo en la web:
Código HTML:
<input type="text" class="nightsEntry" id="nbAdultos" readonly="readOnly" size="1" value="1"  name="nbAdultos"  onkeyup="showNames(nbAdultos)" onchange="showNames(nbAdultos)" /> 
Basandome en este ejemplo he puesto tambien la funcion OnKepUp quitado el ReadOnly y poniendo el ratón encima y nada.

Ojala que alguien me pueda ayudar.

Saludos

Carlos
  #6 (permalink)  
Antiguo 28/06/2008, 19:22
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: cambiar estilo con el valor de un input

Hola:

Lo que pones dentro de una función, si se trata de una cadena debe estar entrecomillada... prueba así:
Código:
onchange="showNames('nbAdultos')"
Saludos
__________________
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.
Respuesta




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