Foros del Web » Programando para Internet » Javascript »

Se ejecuta la segunda funcion antes que la primera

Estas en el tema de Se ejecuta la segunda funcion antes que la primera en el foro de Javascript en Foros del Web. hola chic@s: Haber si podeis ayudarme. tengo en una fucnión javascript para abrir una pop-up y q muestre una lista de valores. Al seleccionar un ...
  #1 (permalink)  
Antiguo 03/06/2011, 13:19
 
Fecha de Ingreso: septiembre-2007
Mensajes: 234
Antigüedad: 16 años, 7 meses
Puntos: 1
Exclamación Se ejecuta la segunda funcion antes que la primera

hola chic@s:
Haber si podeis ayudarme.
tengo en una fucnión javascript para abrir una pop-up y q muestre una lista de valores.
Al seleccionar un valor de la ventana del popup este mismo valor se copia en un campo, por ejemplo en un campo llamado campo1.
Y a continuacion de la funcion que genera el popup tengo una funcion que lo que hace es copiar el valor del campo1 al campo2.
Es decir algo parecido a esto

window.open(...)
ActualizaValores();


El problema que tengo es que la funcion ActualizaValores se ejecuta antes de que seleccione un valor de la ventana popup, es decir que se ejecuta antes
la funcion ActualizaValores(); que window.open(...)

Como puedo arreglarlo??
Un saludo y gracias
  #2 (permalink)  
Antiguo 03/06/2011, 13:29
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Se ejecuta la segunda funcion antes que la primera

buenas,
en realidad no es que se ejecute antes. lo que sucede es que javascript es -por decirlo de una forma- asincrono con los procesos externos. es decir, aunque es cierto que javascript se interpreta linea a linea, cuando javascript abre una ventana el proceso de interpretacion no se detiene hasta que la ventana termine de procesarse. o sea, una vez ya la ventana este abierta el interprete continua con la proxima linea. en tu caso, el problema es el momento de invocacion. dicha funcion debes invocarla mediante algun evento generado por el usuario al escoger un valor del popup. el evento a escoger dependera del tipo de control que ofrezca en dicha ventana. por ejemplo, si es un <select>, debes usar onchange y dentro de este invocar la funcion haciendo referencia la ventana padre.
Código:
// asumiendo que la funcion esta declarada en el ambito global de la ventana padre ;
<select onchange="self.opener.ActualizaValores();">...</select>
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 04/06/2011, 01:35
 
Fecha de Ingreso: septiembre-2007
Mensajes: 234
Antigüedad: 16 años, 7 meses
Puntos: 1
Exclamación Respuesta: Se ejecuta la segunda funcion antes que la primera

Gracias por contestar!!!
Y hay alguna forma de pasarle en javascript el nombre de un campo y que te diga el nombre del formularioo en el que se encuentra??? o el nombre de la ventana en la que está ese campo???
UN saludo y gracias

Etiquetas: funcion, primera, segunda
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:50.