Foros del Web » Programando para Internet » Javascript »

Problemas con una función

Estas en el tema de Problemas con una función en el foro de Javascript en Foros del Web. Buenas a todos, tengo un formulario con un campo despegable en el cual si selecciono un item me aparece un campo a su derecha y ...
  #1 (permalink)  
Antiguo 26/06/2009, 15:36
 
Fecha de Ingreso: junio-2004
Mensajes: 95
Antigüedad: 19 años, 11 meses
Puntos: 0
Problemas con una función

Buenas a todos, tengo un formulario con un campo despegable en el cual si selecciono un item me aparece un campo a su derecha y eligo otro item, me aparece otro item. Lo he podido hacer en javascript pero con mucho código, he pensado optimizarlo de la siguiente manera, pero no me sale.
DECLARO LA FUNCION

<script language="JavaScript">

function seleccion(){

if (document.getElementById("variacion").value==""){

var mifecha="";
return var mifecha;

}

else if(document.getElementById("variacion").value=="al ta"){

var mifecha="aquí vendría el chorizo del código del input fecha de alta";
return var mifecha;


}

else if(document.getElementById("variacion").value=="ba ja"){

var mifecha="aquí vendría el chorizo del código del input fecha de baja";
return var mifecha;
}
else if(document.getElementById("variacion").value=="Ra zón de uso y Depositorio"){

var mifecha="";
return var mifecha;
}
}


</script>


Luego dentro del formulario lo he llamado de la siguiente manera:

<td class="ppal" colspan="2">fechas:</td>
<td class="ppal" colspan="2" >
<select name="variacion" onclick="seleccion()">
<option value="" ></option>
<option value="alta">Alta</option>
<option value="baja">Baja</option>
<option value="En uso">En uso</option>
</select>

</td>
<td class="ppal" colspan="4" ><script>document.write(seleccion());</script>


No me sale, tampoco controlo mucho el javascript, a ver si me podéis ayudar, como véis lo que quiero es que cuando un usuario elija un item de la lista despegable, le salga a la derecha el campo según haya elegido.

Como he comentado antes lo he conseguido pero poniendo muchas lineas utilizando hidden y pienso que puedo hacerlo de esta manera mejor.

Gracias.
  #2 (permalink)  
Antiguo 26/06/2009, 17:07
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Problemas con una función

Mejor usa innerHTML en lugar de document.write(). Le asignas un id a la celda (td) y le cambias el contenido así:
Código Javascript:
Ver original
  1. document.getElementById("id_de_celda").innerHTML = seleccion();
Además, tu función la puedes organizar mejor usando una structura switch:
Código Javascript:
Ver original
  1. switch (document.getElementById("variacion").value) {
  2.     case "alta":
  3.         mifecha = "...";
  4.         break;
  5.     case "baja":
  6.         mifecha = "...";
  7.         break;
  8. }
  9. return mifecha;
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 27/06/2009, 05:20
 
Fecha de Ingreso: junio-2004
Mensajes: 95
Antigüedad: 19 años, 11 meses
Puntos: 0
Respuesta: Problemas con una función

Hola David, gracias por la aportación, lo he probado pero me dice que mifecha no está definida.
<script language="JavaScript">

function seleccion(){

switch (document.getElementById("variacion").value) {
case "alta":
mifecha = "alta";
break;
case "baja":
mifecha = "baja";
break;
}
return mifecha;


}


</script>


¿El "id_de_celda" que función hace?

Gracias por todo.
  #4 (permalink)  
Antiguo 27/06/2009, 06:55
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Problemas con una función

Le asignas un id a la celda (<td id="unid">) y ese id lo colocas en document.getElementById("aquí_el_id").innerHTML = seleccion();
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
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 20:07.