Foros del Web » Programando para Internet » Javascript »

Mostrar en TextField elementos de una Lista/Menu

Estas en el tema de Mostrar en TextField elementos de una Lista/Menu en el foro de Javascript en Foros del Web. Hola a todos!!! Gracias por adelantado!! A ver, tengo un problema...me gustaría que mi menú multiselección mostrará en una caja de texto cada uno de ...
  #1 (permalink)  
Antiguo 26/03/2008, 05:02
 
Fecha de Ingreso: noviembre-2007
Mensajes: 21
Antigüedad: 16 años, 5 meses
Puntos: 0
Mostrar en TextField elementos de una Lista/Menu

Hola a todos!!! Gracias por adelantado!! A ver, tengo un problema...me gustaría que mi menú multiselección mostrará en una caja de texto cada uno de los elementos de dicho menú que voy seleccionando y que elimine de la caja de texto si deselecciono del menú. Espero haberme explicado bien..

Mucha Gracias!!


Antonio ML.
  #2 (permalink)  
Antiguo 26/03/2008, 05:29
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Re: Mostrar en TextField elementos de una Lista/Menu

Hola aml84

Prueba este ejemplo:

Código PHP:
<html>
<
head>
<
script type="text/javascript">
function 
marcar(obj) {
  var 
texto ='';
  for (
i=0opt obj.options[i]; i++)
    if (
opt.selected)
      
texto += opt.value+' ';
  
obj.form.txt.value texto;
}
</script>
</head>
<body>
<form>
<select size="4" multiple="multiple" onchange="marcar(this)">
<option value="Uno">Uno</option>
<option value="Dos">Dos</option>
<option value="Tres">Tres</option>
<option value="Cuatro">Cuatro</option>
</select>
<input type="text" name="txt" />
</form>
</body>
</html> 
Saludos,
  #3 (permalink)  
Antiguo 26/03/2008, 05:48
 
Fecha de Ingreso: noviembre-2007
Mensajes: 21
Antigüedad: 16 años, 5 meses
Puntos: 0
Re: Mostrar en TextField elementos de una Lista/Menu

Impresionante...no tengo palabras!!! Es exactamente lo que quería...es que está hecho!! Llevaba toda la mañana y no había solucionado nada..y tú en apenas minutos!! Estoy muy impresionado..eres un crack!! Es que has introducido hasta el espacio!!!! Increíble..

Muchisimas Gracias!!!


Saludos!! :D
  #4 (permalink)  
Antiguo 26/03/2008, 05:53
 
Fecha de Ingreso: noviembre-2007
Mensajes: 21
Antigüedad: 16 años, 5 meses
Puntos: 0
Re: Mostrar en TextField elementos de una Lista/Menu

Una pregunta...y perdona por abusar de tu conocimiento :P

Como lo ordena?? Es que estoy "analizando" el script y no sé como lo ordena...¿?
Luego dentro del For dices esto "opt = valor.options[i];" ¿qué hace exactamente?

Muchas Gracias por todo y perdona por mi ignorancia!!!


Saludos!
  #5 (permalink)  
Antiguo 26/03/2008, 06:49
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Re: Mostrar en TextField elementos de una Lista/Menu

Hola de nuevo.

Te explico un poco:

Código:
for (i=0; opt = obj.options[i]; i++)
Recorre todos los options

Código:
    if (opt.selected)
      texto += opt.value+' ';
Si el option está seleccionado añade al valor a la variable texto

Si tienes más dudas, no dudes en volver a preguntar.

Saludos,
  #6 (permalink)  
Antiguo 26/03/2008, 07:09
 
Fecha de Ingreso: noviembre-2007
Mensajes: 21
Antigüedad: 16 años, 5 meses
Puntos: 0
Re: Mostrar en TextField elementos de una Lista/Menu

Sí, más o menos lo he entendido... si te dijera que idea tenía yo para hacerlo :S

Lo que no entiendo ahora porque "opt" no está inicializado? Sé que se asigna cada uno de los options pero como sabe cuando parar? Sí, cuando llegue al final pero no lo veo...no quedaría "opt" en blanco?

Por cierto, acabo de escribir otro tema en el foro para ver si alguien sabe como hacer una multiselección sin pulsar la tecla control, si existe alguna opción en la lista/menú para hacerlo o qué? No sé si tendrás idea sobre esto...

Muchas gracias y siento tanta molestia!!


Saludos. :D
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 18:53.