Foros del Web » Programando para Internet » Javascript »

Posicion dentro de la coleccion

Estas en el tema de Posicion dentro de la coleccion en el foro de Javascript en Foros del Web. Hola amigos, La cuestion es la siguiente: Como podria saber la posicion de un objeto (input, select..) dentro de un fomulario. con la coleccion "elements", ...
  #1 (permalink)  
Antiguo 04/09/2006, 09:18
 
Fecha de Ingreso: septiembre-2002
Mensajes: 122
Antigüedad: 21 años, 7 meses
Puntos: 0
Posicion dentro de la coleccion

Hola amigos,

La cuestion es la siguiente:

Como podria saber la posicion de un objeto (input, select..) dentro de un fomulario. con la coleccion "elements", yo puedo recorres todos los controles del formulario y manualmente puedo saberlo contando los controles en el orden de arriba hacia abajo empezando por 0.

Pero estando parado en un control por ejemplo un "input" como puedo obterner la posicion o indice dentro de la coleccion?.

Gracias a todos,
  #2 (permalink)  
Antiguo 04/09/2006, 09: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 Reyis

A ver si esto te sirve:
Código PHP:
<html>
<
head>
<
script type="text/javascript">
function 
verPosi(obj) {
  
formu obj.form;
  for (
i=0ele=formu.elements[i]; i++)
    if (
ele==obj) {
      
alert ('Soy el nº '+i);
      return;
    }
}
</script>
</head>
<body>
<form>
<input type="text" onclick="verPosi(this)" />
<input type="text" onclick="verPosi(this)" />
<input type="text" onclick="verPosi(this)" />
</form>
</body>
</html> 
Saludos,
  #3 (permalink)  
Antiguo 04/09/2006, 09:29
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:

Si usas un evento desde el mismo elemento, por ejemplo asociado al foco, puedes pasar el elemento como parámetro de una función que al ejecutarse recorra el array elements...

function posi(elemento) {
f = elemento.form;
for (i = 0, total = f.elements.length; i < total; i++)
if (elemento == f.elements[i]) alert("elemento " + i);
}

y el form (reducido):

<form>
<input type=text onfocus="posi(this)" >
<input type=text onfocus="posi(this)" >
</form>

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #4 (permalink)  
Antiguo 04/09/2006, 09:32
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Otra vez JavierB... ... si, ya sé... ¡otro punto menos...!

¡Je! Otro código parecido...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 04/09/2006, 09:33
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 caricatos

Otro choque otra respuesta casi identica y otro puntillo que pierdes y/o pierdo del carnet a este paso nos quitarán el permiso de circulación de los foros.

Saludos,

Última edición por JavierB; 04/09/2006 a las 09:47
  #6 (permalink)  
Antiguo 04/09/2006, 09:47
 
Fecha de Ingreso: septiembre-2002
Mensajes: 122
Antigüedad: 21 años, 7 meses
Puntos: 0
Ok...muchas gracias a los Dos...
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 08:45.