Foros del Web » Programando para Internet » Javascript »

select multiple, modelo objetos del dom

Estas en el tema de select multiple, modelo objetos del dom en el foro de Javascript en Foros del Web. Hola chicos, tengo un problema, tengo un par de select multiples y quiero hacer la comprobacion de que se ha seleccionado algun valor; tengo q ...
  #1 (permalink)  
Antiguo 30/10/2003, 09:59
 
Fecha de Ingreso: mayo-2002
Mensajes: 88
Antigüedad: 22 años
Puntos: 0
select multiple, modelo objetos del dom

Hola chicos, tengo un problema, tengo un par de select multiples y quiero hacer la comprobacion de que se ha seleccionado algun valor; tengo q seguir el modelo de objetos del dom, pero he mirado en un monton de sitios y no encuentro algo que me funcione. Pongo de ejemplo el primer combo, de la sgte manera:

<form name="formulario" action="alta_comercial.php" method="post">
<table border="0">
<tr><td>Nombre:</td><td>Zonas asignadas:</td><td>Clientes asignados:</td></tr>
<tr>
<td valign="top"><input type="text" name="nombre" size="30" maxsize="60"</td>
<td>
<select id="zona[]" size="6" multiple><?
//consulto las zonas q hay en la bbdd:
$sql="SELECT id_zona,nombre FROM zonas";
$result=mysql_query($sql,$link);
while ($row=mysql_fetch_array($result))
{
$id=$row["id_zona"];
$name=$row["nombre"];?>
<option value="<? echo $id;?>"><?echo $name;
}?>
</select>
_____________________________________________

La función javascript q estoy probando (una de las multiples versiones q he probado y no funcionan) es la sgte:

function validar()
{
selobj=document.getElementsByTagName("<select id='zona[]' size='6' multiple>");
for (var i=0; i<selobj.length; i++)
{
if(selobj[i].selected)
alert("algo");
}

}

Necesito ayuda por favor!!!, muchisisimas gracias chicos, un saludo.
  #2 (permalink)  
Antiguo 30/10/2003, 12:27
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola 3pMaria:

Cuando usas getElementsByTagName, obtienes un array de todos los elementos que pasas por parámetro, y ese parámetro tendría que ser un tag por ejemplo "select".
Puedes usar también getElementById, con el id del elemento por parámetro, pero solo devuelve un elemento, así que es conveniente no tener el id duplicado, porque solo podrías obtener el primero.
Te recomiendo que el id sea texto normal (tienes unos corchetes que no sé si te podrían dar problemas).

Dos mameras de obtener el select mediante el dom:

selobj = document.forms.formulario.getElementsByTagName("se lect")[0];

selobj = document.getElementById("zona[]");

Luego, dentro del select puedes consultar el array options:
optsobj = selobj.options;

for (var i=0; i<optsobj.length; i++) {
if(optsobj[i].selected == true)
alert("algo");
}

Espero que te sirva.

Saludos
  #3 (permalink)  
Antiguo 31/10/2003, 03:03
 
Fecha de Ingreso: mayo-2002
Mensajes: 88
Antigüedad: 22 años
Puntos: 0
Gracias caricatos, me has salvado el pellejo, jejjejej; funciona perfectamente, el tema de los corchetes es para poder recuperar luego el array de valores seleccionados desde $_POST en php, pq sin ellos no me funcionaba.

La verdad que estoy empezando con el tema del dom y no controlo nada, si alguien sabe de un buen tutorial ó manual ó lo que sea le agradecería que lo comentara.

Muchas gracias, saludiños,
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 02:59.