Foros del Web » Programando para Internet » Javascript »

No funciona Ocultar TEXT desde opcion de un select

Estas en el tema de No funciona Ocultar TEXT desde opcion de un select en el foro de Javascript en Foros del Web. Saludos!!! Mi cuestion es la siguiente, buscando en el foro encontre que puedo ocultar un campo de texto dependiendo de un select utilizando la siguiente ...
  #1 (permalink)  
Antiguo 22/08/2005, 12:38
Avatar de jeanclon  
Fecha de Ingreso: mayo-2005
Mensajes: 258
Antigüedad: 19 años
Puntos: 2
No funciona Ocultar TEXT desde opcion de un select

Saludos!!!

Mi cuestion es la siguiente, buscando en el foro encontre que puedo ocultar un campo de texto dependiendo de un select utilizando la siguiente funcion:

Código HTML:
<script language="Javascript">
function verifica(){
 if (document.formulario.lista.option.text="otro"){
document.GetElementById("escribe").style.visibility="Visible"}
else{
document.GetElementById("escribe").style.visibility="hidden"
}}
 </script> 
y utilizo estos campos:

Código HTML:
<form name="formulario" id="formulario">
<select name="lista" size="1" id="lista" onChange="verifica();">
	    <option>uno</option>
	    <option>dos</option>
	    <option>otro</option>
      </select>
<input type="text" name="escribe" id="escribe" style="visibility:hidden ">
</form> 
pero no me funciona, me sale el error de que:

document.formulario.lista.option es nulo o no es un objeto.

Sinceramente no se por que? ya le he cambiado varias cosas probado en varios formularios y nada que funciona, que estare haciendo mal??
por que no lo veo.
  #2 (permalink)  
Antiguo 22/08/2005, 20:18
 
Fecha de Ingreso: julio-2005
Mensajes: 90
Antigüedad: 18 años, 9 meses
Puntos: 1
Lo estás haciendo mal, alma de cantaro !!!, primeramente es conveniente que no omitas los values en los option de la select aunque coincidan con el text que presentas en la página, ya que puedes tener problemas con Javascript, por lo tanto no me seas vago y ponle los values, tu formulario ya corregido quedará así:
<form name="formulario" id="formulario">
<select name="lista" size="1" id="lista" onChange="verifica();">
<option value="uno">uno</option>
<option value="dos">dos</option>
<option value="tres">otro</option>
</select>
<input type="text" name="escribe" id="escribe" style="visibility:hidden ">
</form>
Bien, ahora sólamente queda modificar la forma en la que haces referencia al valor de la select en la funcion javascript, que tb lo tienes mal, fijate en la comparación del If.

<script language="Javascript">
function verifica(){
if (document.formulario.lista.options[document.formulario.lista.selectedIndex].value="otro"){ document.GetElementById("escribe").style.visibilit y="Visible"}
else{
document.GetElementById("escribe").style.visibilit y="hidden" }}
</script>

Pruebalo a ver si de esta forma te funciona.
  #3 (permalink)  
Antiguo 23/08/2005, 08:18
Avatar de jeanclon  
Fecha de Ingreso: mayo-2005
Mensajes: 258
Antigüedad: 19 años
Puntos: 2
Muchisimas gracias mario2005, lo de poner los value no es por flojera, lo necesito asi ya que el codigo que puse fue solo un ejemplo, en donde verdaderamente lo necesito utilizo variables de sesion por que es un formulario de varias paginas y necesito recordar lo que el usuario habia seleccionado si regresa a dicho formulario, ademas el mismo formulario sirve para modificacion posterior, los datos los traigo de la base de datos y tiene que aparecer todo ya seleccionado como lo habian guardado antes, por esas dos razones uso variable de sesion dentro de uno de los valores del option. Uno de los tantos que tengo es asi:

Código HTML:
<select name="rec_residuos" size="1" id="rec_residuos">
                      <option value="<?php if (($_SESSION['rec_residuos'])==""){echo "";}else{ echo $_SESSION['rec_residuos'];}?>" selected><?php if (($_SESSION['rec_residuos'])==""){echo "Seleccione: " ;}else{ echo $_SESSION['rec_residuos'];}?></option>
      				  <option value=""></option>
                      <option>Aseo urbano</option>
                      <option>Relleno sanitario</option>
                      <option>Acumulada</option>
                      <option>Quemada</option>
                      <option>Contenedor</option>
                      <option>Otro</option>
                    </select> 
Y tengo un problema con eso, si le coloco los value a los otros option, el tamaño del campo de lista se coloca del largo de toda la expresion php que esta en el value del primer valor de la lista, cosa que no quiero, al no ponerle los value el tamaño que toma el campo lista es del largo de la palabra "Relleno sanitario" (en este caso), asi que preferi dejarlos sin value.

Con respecto al script si el if estaba malo y lo coloque como me dijiste, pero tambien habia otro error; la instruccion:

Código:
document.GetElementById("escribe").style.visibility="Visible"
arrojaba el siguiente error: El objeto no acepta esta propiedad o metodo.
por lo que tuve que cambiarla a:

Código:
document.formulario.escribe.style.visibility="visible"
Asi que finalmente todo quedo asi:

El formulario:
Código HTML:
<form name="formulario" id="formulario">

	<select name="lista" size="1" id="lista" onChange="verifica();">
<option >uno</option>
<option >dos</option>
<option >otro</option>
</select>
      <input type="text" name="escribe" id="escribe" style="visibility:hidden ">
</form> 
y el script:

Código HTML:
<script language="Javascript">
function verifica(){ 
if (document.formulario.lista.options[document.formulario.lista.selectedIndex].text=="otro"){
document.formulario.escribe.style.visibility="visible";
} 
else{ 
document.formulario.escribe.style.visibility="hidden";
}} 
 </script> 
De esta manera si me funciona perfecto.
  #4 (permalink)  
Antiguo 27/08/2008, 12:46
 
Fecha de Ingreso: mayo-2005
Mensajes: 7
Antigüedad: 19 años
Puntos: 0
Respuesta: No funciona Ocultar TEXT desde opcion de un select

Hola, esta muy bien la solución, espero que me puedan ayudar, yo tengo una función del cual mediante catálogo en una tabla b, obtengo un dato, esto lo visualizo mendiante esta instrucción en php

<?php
$sql = "SELECT id, cDescripcion from cat_forigen";
$qry = mysql_query($sql,$link) or die(mysql_error());
echo listbox_field2($qry,"nForigen",$datos["nForigen"]);
?>

esto en el formulario obtengo dos datos interno y externo

lo que pretendo es sí seleccionan interno me desabilite 4 text que tengo mediante esta selección, ojalá me puedan hechar la mano.

explico: nForigne es la tabla donde está mi catalógo.

listbox_field2 es la función que tengo para que me de la selección de busquedas.
  #5 (permalink)  
Antiguo 28/08/2008, 07:25
Avatar de Javier01  
Fecha de Ingreso: febrero-2008
Ubicación: Montevideo
Mensajes: 261
Antigüedad: 16 años, 2 meses
Puntos: 31
Respuesta: No funciona Ocultar TEXT desde opcion de un select

Hola Lobo_de_galaad;
No entiendo bien tu pregunta, pero para que la contesten quien la sepa, lo mejor será que abras un "nuevo tema".
Porque este tema quedo terminado el 23 de agosto, ya hace 6 días.
Y las personas que contestan no tienen tiempo para fijarse en temas ya resueltos. Así que abre un tema nuevo y ya alguien te ayudara! Saludos
  #6 (permalink)  
Antiguo 28/08/2008, 07:53
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: No funciona Ocultar TEXT desde opcion de un select

Hola:

Por favor, para nuevas preguntas, inicien nuevos temas.

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.
Tema Cerrado




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