Foros del Web » Programando para Internet » Javascript »

Conocer parent de un objeto

Estas en el tema de Conocer parent de un objeto en el foro de Javascript en Foros del Web. Hola Tengo un codigo del tipo SELECT ONCHANGE="salta(this);" Y quiero saber como puedo obtener la FORMA a la que pertenece ese componente si solamente tengo ...
  #1 (permalink)  
Antiguo 12/05/2004, 14:03
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años, 6 meses
Puntos: 25
Conocer parent de un objeto

Hola

Tengo un codigo del tipo SELECT ONCHANGE="salta(this);"

Y quiero saber como puedo obtener la FORMA a la que pertenece ese componente si solamente tengo el objeto regresado pot this.

He intentado con algo como esto, pero obviamente no funciona por que no doy con las propiedades adecuadas:
Código PHP:
function salta(menu){
  
frm menu.parentElement;
  
frm.submit();

Espero que me puedan ayudar con cuales son esas propiedades.

Gracias
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #2 (permalink)  
Antiguo 13/05/2004, 01:08
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 3 meses
Puntos: 381
prueba con....


function salta(menu){
frm = menu.parentNode;
frm.submit();
}

  #3 (permalink)  
Antiguo 13/05/2004, 14:43
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años, 6 meses
Puntos: 25
Gracias, pero algo estoy haciendo mal, no me funciona, trabaja bien con la primer forma, pero para las demas me dice que "id_value no es un objeto".

Me explico mejor, tengo 3 formas y la función:
Código PHP:
<script>
function 
salta(menunoForma){
    var 
frm menu.parentNode;
//    var frm = document.forms[noForma];
    
frm.id_value.value menu.options[menu.selectedIndex].value;
    
menu.selectedIndex = -1;
    
frm.submit();
}
</
scrtipt>
...
<
form name="form1" action"somewhere.html">
  <
select name="menu1" onChange="salta(this, 0);">.....</select>
  <
input name="Dato" id="id_value" type="hidden">
</
form>
<
form name="form2" action"anywhere.html">
  <
select name="menu2" onChange="salta(this, 1);">.....</select>
  <
input name="Dato" id="id_value" type="hidden">
</
form>
<
form name="form3" action"nowhere.html">
  <
select name="menu3" onChange="salta(this, 2);">.....</select>
  <
input name="Dato" id="id_value" type="hidden">
</
form
¿Hay algo que estoy haciendo mal?

Gracias.
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #4 (permalink)  
Antiguo 13/05/2004, 15:06
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Hola Mithrandir y tunait :

No se deben repetir los atributos "id", se supone que son únicos...

Me parece que tu script tendría que funcionar usando el atributo name... además creo que es el adecuado en los formularios.

Otra cosa que puede mejorar el código (creo) es usar this.form en las llamadas, y así no hace falta enterarse del "parentNode"... incluso parentNode es "cosa DOM" y los formularios son de "toda la vida"... la función salta no necesitaría la línea:
var frm = menu.parentNode;
y tendrías que usar:
menu.Dato.value
... en vez de
frm.id_value.value

Tal vez en el futuro sea necesario, pero hoy día no es necesario usar el atributo id en los formularios

Saludos
  #5 (permalink)  
Antiguo 14/05/2004, 13:50
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años, 6 meses
Puntos: 25
Error, tanto NAME como ID son ID_VALUE, me equivoqué al crear el codigo.

Probaré lo que indicas, a ver si consigo lo que quiero.

Gracias.
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
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:37.