Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] 2 funciones en evento Onchange pero ejecutar en secuencia

Estas en el tema de 2 funciones en evento Onchange pero ejecutar en secuencia en el foro de Javascript en Foros del Web. Buenas tardes gente de FDW, Tengo 2 funciones que necesito ejecuten en un evento OnChange, sin embargo, me están dando resultados inesperados y me di ...
  #1 (permalink)  
Antiguo 18/08/2015, 10:19
Avatar de luisvasquez  
Fecha de Ingreso: diciembre-2003
Ubicación: Venezuela
Mensajes: 879
Antigüedad: 20 años, 11 meses
Puntos: 6
2 funciones en evento Onchange pero ejecutar en secuencia

Buenas tardes gente de FDW,

Tengo 2 funciones que necesito ejecuten en un evento OnChange, sin embargo, me están dando resultados inesperados y me di cuenta de que ambas ejecutan AL MISMO tiempo, pero necesito que ejecuten una después de la otra.

¿Es esto posible?

Se que existe la posibilidad de combinarlas en una sola función, pero son bastante complejas (usan ajax para hacer llamados a PHP) y quiero descartar antes esta posibilidad...

¿existe algún otro evento javascript o parámetro que me permita ejecutarlas en secuencia?

Código HTML:
<input name="campo"  type="text"  id="campo" value="0" size="10" OnChange="func1(); func2();" > 
Saludos y gracias,
Luis Vásquez
  #2 (permalink)  
Antiguo 18/08/2015, 10:29
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: 2 funciones en evento Onchange pero ejecutar en secuencia

Con o sin peticiones asíncronas (Ajax), usando promesas puedes lograr lo que buscas.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 18/08/2015, 10:44
Avatar de luisvasquez  
Fecha de Ingreso: diciembre-2003
Ubicación: Venezuela
Mensajes: 879
Antigüedad: 20 años, 11 meses
Puntos: 6
Respuesta: 2 funciones en evento Onchange pero ejecutar en secuencia

Cita:
Iniciado por Alexis88 Ver Mensaje
Con o sin peticiones asíncronas (Ajax), usando promesas puedes lograr lo que buscas.

Saludos
interesante, pero no deja de ser complejo...es decir, si estuviese comenzando de 0 tendría sentido, pero en mi caso, que ya las funciones están listas ?

Quería algo como OnChangeOrdered ja ja ja ja

Gracias por tu respuesta.
  #4 (permalink)  
Antiguo 18/08/2015, 10:49
Avatar de luisvasquez  
Fecha de Ingreso: diciembre-2003
Ubicación: Venezuela
Mensajes: 879
Antigüedad: 20 años, 11 meses
Puntos: 6
Respuesta: 2 funciones en evento Onchange pero ejecutar en secuencia

Cita:
Iniciado por Alexis88 Ver Mensaje
Con o sin peticiones asíncronas (Ajax), usando promesas puedes lograr lo que buscas.

Saludos

Veo que te manejas bastante con javascript..

¿Qué sucede si hago una funcion "total" que llamo en el onchange?

function total ()
{
func1();
func2();
}

¿Se ejecutarán en secuencia??

El asunto es que la func1 modifica valores que son usados en func2...me interesa que func2 tome los valores actualizados y de la forma convencional, toma los valores anteriores (porque ejecutan al mismo tiempo)..

¿qué opinas?
  #5 (permalink)  
Antiguo 18/08/2015, 10:57
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: 2 funciones en evento Onchange pero ejecutar en secuencia

Pienso que si lo hicieras así:

Código Javascript:
Ver original
  1. function foo(){
  2.     /* Instrucciones */
  3.    bar();
  4. }
  5.  
  6. function bar(){
  7.     /* Instrucciones */
  8. }
  9.  
  10. foo();

Podría respetarse el orden. Depende también de qué estés ejecutando, pero si es Ajax, podrías ejecutar la segunda función cuando recibas la respuesta en la primera.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #6 (permalink)  
Antiguo 18/08/2015, 12:37
Avatar de luisvasquez  
Fecha de Ingreso: diciembre-2003
Ubicación: Venezuela
Mensajes: 879
Antigüedad: 20 años, 11 meses
Puntos: 6
De acuerdo Respuesta: 2 funciones en evento Onchange pero ejecutar en secuencia

Cita:
Iniciado por Alexis88 Ver Mensaje
Pienso que si lo hicieras así:

Código Javascript:
Ver original
  1. function foo(){
  2.     /* Instrucciones */
  3.    bar();
  4. }
  5.  
  6. function bar(){
  7.     /* Instrucciones */
  8. }
  9.  
  10. foo();

Podría respetarse el orden. Depende también de qué estés ejecutando, pero si es Ajax, podrías ejecutar la segunda función cuando recibas la respuesta en la primera.

Saludos

Al final funcionó como dijiste...al recibir respuesta de la primera ejecuto la segunda. Esta toma los valores de la primera y realiza los calculos perfectamente.

1000 gracias por tu ayuda!

Código HTML:
function func1 ()
{
        xmlhttp = new XMLHttpRequest();
        xmlhttp.onreadystatechange = function() {
            if (xmlhttp.readyState == 4 && xmlhttp.status == 200) 
             {
		 document.getElementById('valor1').innerHTML= xmlhttp.responseText;
		  // acá ejecuta la función 2
                  func2();				 
            }
        }

        xmlhttp.open("GET","func1.php?true);
        xmlhttp.send();
}
  #7 (permalink)  
Antiguo 18/08/2015, 13:05
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años, 5 meses
Puntos: 1012
Respuesta: 2 funciones en evento Onchange pero ejecutar en secuencia

esa es una manera de hacerlo. otra es con el operador &&
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}

Etiquetas: ajax, funciones, js, onchange
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:47.