Foros del Web » Programando para Internet » Javascript »

¿Difícil? Crear objeto select

Estas en el tema de ¿Difícil? Crear objeto select en el foro de Javascript en Foros del Web. Hola a todo el mundo, ¿Cómo puedo crear un objeto select dinámicamente dentro del HTML, pulsando un botón por ejemplo, colocarlo donde quiera con la ...
  #1 (permalink)  
Antiguo 25/04/2005, 10:02
 
Fecha de Ingreso: agosto-2003
Ubicación: Málaga, España
Mensajes: 419
Antigüedad: 20 años, 8 meses
Puntos: 1
¿Difícil? Crear objeto select

Hola a todo el mundo,

¿Cómo puedo crear un objeto select dinámicamente dentro del HTML, pulsando un botón por ejemplo, colocarlo donde quiera con la lista de items que quiera?

¿Difícil?

Un saludo
Miguel.
  #2 (permalink)  
Antiguo 25/04/2005, 10:22
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola bauhaus1975

Lo de difícil o fácil es relativo, como dijo no se quien. Bueno, a lo que importa, el código:
Código PHP:
<html>
<
head>
<
script type="text/javascript">
function 
crear() {
  
papa=document.getElementById('jose');
  
sel=document.createElement('select'); //creamos el select
  
opt=document.createElement('option'); //creamos una opcion
  
opt.value='algo';
  
opt.innerHTML='algo';
  
sel.appendChild(opt); //añadimos la opcion al select
  
papa.appendChild(sel); //añadilos el select al lugar que queremos
}
</script>
</head>
<body>
<div id="jose">
</div>
<input type="button" value="Crear" onclick="crear()" />
</body>
</html> 
Saludos,
  #3 (permalink)  
Antiguo 25/04/2005, 11:16
 
Fecha de Ingreso: agosto-2003
Ubicación: Málaga, España
Mensajes: 419
Antigüedad: 20 años, 8 meses
Puntos: 1
Muchas gracias ! lo he probado y funciona. PERO...

¿Podriamos afinar un poco más? Estoy intentando crearlo cada select en una posición determinada, en una fila nueva de un 'table' por cada nuevo select.
¿Cómo podriamos hacer ésto?
  #4 (permalink)  
Antiguo 25/04/2005, 12:22
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola de nuevo.

¿Te refieres a crear las filas dinamicamente? En esta páginas tienes un ejemplo de como hacerlo. Si tienes problemas para encajar los dos códigos, dilo y veré si puedo echarte un cable.

http://www.tierradenomadas.com/tw006b.html

Saludos,
  #5 (permalink)  
Antiguo 26/04/2005, 10:32
 
Fecha de Ingreso: agosto-2003
Ubicación: Málaga, España
Mensajes: 419
Antigüedad: 20 años, 8 meses
Puntos: 1
Sí ha eso me refería. Muchas gracias JavierB... PERO...

El ejemplo ha sido de mucha ayuda.
He ido insertando 2 td dentro de un tr, uno de los tds contenia un título simple y el otro el objeto select. Sólo hay dos cosas que no he podido hacer y me echa humo la cabeza:

1) Asignar el class adecuado al TD, sino desentona con el resto de elementos :)
2) Hacer que el tr lo añada al final de la tabla y no al principio

Muchas gracias por la ayuda.
Miguel.
  #6 (permalink)  
Antiguo 26/04/2005, 10:54
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola de nuevo. Veo que vas avanzando

1)

ele=document.createElement('td');
ele.className='tuclase';

2)

En lugar de esto, que supongo que es lo que usas:

elmTBODY.insertBefore(elmTR,elmTBODY.childNodes[3]);

Utiliza esto otro:

elmTBODY.appendChild(elmTR);

Suerte. Saludos,
  #7 (permalink)  
Antiguo 26/04/2005, 11:28
 
Fecha de Ingreso: agosto-2003
Ubicación: Málaga, España
Mensajes: 419
Antigüedad: 20 años, 8 meses
Puntos: 1
Estupendo, el punto 2 ha funcionado, pero el primero (asignar el class) nada de nada
ni probando con mayusculas, minusculas:

var sel=document.createElement('select');
// Seteo de las propiedades:
sel.ClassName = 'colorform';
sel.setAttribute('id',idHijo);
sel.setAttribute('name',idHijo);

He probado también con el sel.setAttribute('ClassName','colorform');

:((
  #8 (permalink)  
Antiguo 26/04/2005, 12:17
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Rehola.

No se si habrá sido un error al poner el mensaje, pero debería quedar así (lo había probado antes de poner el anterior mensaje y me ha funcionado)

sel.className = 'colorform';

Saludos,
  #9 (permalink)  
Antiguo 27/04/2005, 01:20
 
Fecha de Ingreso: agosto-2003
Ubicación: Málaga, España
Mensajes: 419
Antigüedad: 20 años, 8 meses
Puntos: 1
OK, ¡ahora sí!

Muchas gracias y hasta pronto.
  #10 (permalink)  
Antiguo 27/04/2005, 02:01
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Pues eso, hasta pronto. Me alegro de que te haya funcionado
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 15:17.