Foros del Web » Programando para Internet » Javascript »

Se puede hacer??

Estas en el tema de Se puede hacer?? en el foro de Javascript en Foros del Web. Hola, haber si se puede hacer lo que he pensado. Tengo un label, que indica el campo a ingresar en un input, supongamos que en ...
  #1 (permalink)  
Antiguo 31/07/2003, 16:38
 
Fecha de Ingreso: julio-2003
Mensajes: 463
Antigüedad: 20 años, 9 meses
Puntos: 0
Se puede hacer??

Hola, haber si se puede hacer lo que he pensado.

Tengo un label, que indica el campo a ingresar en un input,
supongamos que en el label esta la palabra "NOMBRE:" y el input sirve para introducir el nombre.

Bien, en un principio tendrían que estar los dos ocultos y cuando se seleccione una determinada opción en un combo, que se muestren.

No sé si será posible hacerlo, si alguién tiene algún comentario se lo agradezco.


Un saludo.
  #2 (permalink)  
Antiguo 01/08/2003, 01:21
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 21 años, 5 meses
Puntos: 4
Podrías incluir todo dentro de una etiqueta con la propiedad oculta o invisible y luego mostrarla o hacerla visible.

<div id="nombre" style="display: none;">.....</div>

<div id="nombre" style="visibility: hidden;">.....</div>

Y las correspondientes funciones Javascript

document.getElementById("nombre").style.display='' ;

document.getElementById("nombre").style.visibility ='visible';

Con la primera opción, no sólo no lo muestras sino que además tampoco ocupa espacio en la página, es decir, cuando lo muestres, el contenido que este alrededor de la etiqueta se ajustará al hueco que ahora ocupa la etiqueta.

Por cierto, no soy muy partidario de los títulos del tipo Se puede hacer??. Hay que concretar los títulos y no ser tan generalistas, a parte de que cuando se formula una pregunta hay que añadir los signos de interrogación correspondientes al principio de la misma.

Un saludo.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
  #3 (permalink)  
Antiguo 01/08/2003, 01:35
Avatar de eDuDiTo  
Fecha de Ingreso: junio-2002
Ubicación: Murcia
Mensajes: 173
Antigüedad: 21 años, 10 meses
Puntos: 0
Buenas dominguez,

Lo que tienes que hacer es añadirle tanto al label como al input el atributo:

style="display:none;" o style="visibility:hidden;" (el primero no ocupa espacio cuando está invisible y el segundo sí, eso ya va según gustos)

Luego en el combo creas un evento onChange que llame a una función:

<select name="miSelect" onChange="cambiaDisplay();" >

Ya solo te falta definir la función que compruebe el valor del Select y según sea este mostrar o no el input y el label:

<script language="JavaScript">
function cambiaDisplay() {
if (formulario.miSelect.options[formulario.miSelect.selectedIndex].value == "XXX") {
formulario.miLabel.style.display = 'block'
formulario.miInput.style.display = 'block'
} else {
formulario.miLabel.style.display = 'none'
formulario.miInput.style.display = 'none'
}
}
</script>


Observa que donde dice .style.display = 'block' o .style.display = 'none' es sólo en el caso de haber utilizado el atributo display; si has usado visibility debes sustituirlo por .style.visibility = 'visible' y .style.visibility = 'hidden'

Pruébalo y ya me dices si da algún fallo que no lo he probado, espero que te sirva. Saludos!
  #4 (permalink)  
Antiguo 01/08/2003, 01:43
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 21 años, 5 meses
Puntos: 4
Pues sí eDuDiTo, mucho mejor explicado

Un saludo a los dos.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
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 09:35.