Foros del Web » Programando para Internet » Jquery »

ejecutar funcion al cargar pagina

Estas en el tema de ejecutar funcion al cargar pagina en el foro de Jquery en Foros del Web. hola a todos tal vez sea una pregunta tonta, pero es qu apenas comienzo a manejar javascript. BUeno, mi pregunta es la siguiente. tengo una ...
  #1 (permalink)  
Antiguo 13/01/2016, 10:08
 
Fecha de Ingreso: septiembre-2015
Mensajes: 58
Antigüedad: 9 años, 2 meses
Puntos: 2
ejecutar funcion al cargar pagina

hola a todos

tal vez sea una pregunta tonta, pero es qu apenas comienzo a manejar javascript.
BUeno, mi pregunta es la siguiente. tengo una función javascript que se ejecuta en el evento onchange en algunas cajas de texto asi;

Código Javascript:
Ver original
  1. function calculo_imp(total,vrdcto1,dcto1,totalD1,vriva1,iva1,vrretefuente1,retefuente1,vrica1,reteica1,totalG1){
  2.                 if(total.==""){  total.value=0; }
  3.                 if(vrdcto1==""){  vrdcto1.value=0; }
  4.                 if(dcto1==""){  dcto1.value=0; }
  5.                 var Dcto = (parseFloat(total)*parseFloat(vrdcto1))/100;
  6.                 if(Dcto==''){  Dcto.value=0; }
  7.                 dcto1.value=(Dcto).toFixed(2);
  8.                 totalD1.value=(parseFloat(total)-dcto1.value).toFixed(2);
  9.                 if(totalD1==""){  totalD1.value=0; }
  10.                 if(vriva1=="") { vriva1.value=0; }
  11.                 if(iva1==""){ iva1.value=0; }
  12.                 var iva =(totalD1.value*parseFloat(vriva1))/100;
  13.                 iva1.value=(iva).toFixed(2);
  14.                 if(vrretefuente1==""){  vrretefuente1.value=0; }
  15.                 if(retefuente1==""){  retefuente1.value=0; }
  16.                 var retefuente =(totalD1.value*parseFloat(vrretefuente1))/100;
  17.                 retefuente1.value = (retefuente).toFixed(2);
  18.                 if(vrica1=="") { vrica1.value=0; }
  19.                 if(reteica1=="") { reteica1.value=0; }
  20.                 reteica1.value=((totalD1.value*parseFloat(vrica1))/100).toFixed(2);
  21.                 if(totalG1==""){ totalG1.value=0; }
  22.                 totalG1.value=(parseFloat(totalD1.value)+parseFloat(iva1.value)-parseFloat(retefuente1.value)-parseFloat(reteica1.value)).toFixed(2);
  23.             }
ésta me funciona bien, lo que me gustaría saber, es como hago para que al cargar la pagina, ésta función se ejecute. He leido que se puede llamar una función en usando
Código Javascript:
Ver original
  1. $(document).ready(function(){ calculo_imp(); })
y lo intenté así, pero no funciona, no sé si sea por los parametros y no encuentro mucha información, podrían ayudarme?

gracias.
  #2 (permalink)  
Antiguo 13/01/2016, 10:15
 
Fecha de Ingreso: junio-2011
Mensajes: 289
Antigüedad: 13 años, 5 meses
Puntos: 15
Respuesta: ejecutar funcion al cargar pagina

No te funciona por que a calculo_imp() no les estas pasando los parámetros que necesita..

calculo_imp() es una función distinta a calculo_imp(total,vrdcto1,dcto1,totalD1,vriva1,iva 1,vrretefuente1,retefuente1,vrica1,reteica1,totalG 1)
  #3 (permalink)  
Antiguo 13/01/2016, 10:15
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: ejecutar funcion al cargar pagina

Lo que sospechas tiene mucho sentido. Si no le pasas los argumentos a la función, ¿cómo esperas a que opere con ellos?

Y como alternativa a jQuery, también puedes ejecutar la función delegando el evento DOMContentLoaded al documento:
Código Javascript:
Ver original
  1. document.addEventListener("DOMContentLoaded", function(){
  2.     calculo_imp(/* Argumentos */);
  3. }, false);

Un saludo
__________________
«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
  #4 (permalink)  
Antiguo 13/01/2016, 10:19
 
Fecha de Ingreso: junio-2011
Mensajes: 289
Antigüedad: 13 años, 5 meses
Puntos: 15
Respuesta: ejecutar funcion al cargar pagina

Cita:
Iniciado por Alexis88 Ver Mensaje
Lo que sospechas tiene mucho sentido. Si no le pasas los argumentos a la función, ¿cómo esperas a que opere con ellos?

Y como alternativa a jQuery, también puedes ejecutar la función delegando el evento DOMContentLoaded al documento:
Código Javascript:
Ver original
  1. document.addEventListener("DOMContentLoaded", function(){
  2.     calculo_imp(/* Argumentos */);
  3. }, false);

Un saludo
=O y que ganas??
Cual es la diferencia con $(document).ready()?
  #5 (permalink)  
Antiguo 13/01/2016, 10:21
 
Fecha de Ingreso: septiembre-2015
Mensajes: 58
Antigüedad: 9 años, 2 meses
Puntos: 2
Respuesta: ejecutar funcion al cargar pagina

SI, la verdad es que soy algo novato jeje.
estos parametros son los ids de las cajas de texto, entonces por ejemplo podría hacerlo así?

Código Javascript:
Ver original
  1. $(document).ready(function(){ calculo_imp("#total", "#vrdcto"); })

Así estan bien indicados los ID de las cajas de texto, o se debe hacer sin comillas?

Y gracias por las prontas respuestas (Y)
  #6 (permalink)  
Antiguo 13/01/2016, 10:31
 
Fecha de Ingreso: junio-2011
Mensajes: 289
Antigüedad: 13 años, 5 meses
Puntos: 15
Respuesta: ejecutar funcion al cargar pagina

Debes leer de js xD

Si quieres leer los valores de tus cajas debes hacerlo así

Código Javascript:
Ver original
  1. $(document).ready(function(){ calculo_imp(); })

Código Javascript:
Ver original
  1. function calculo_imp(){
  2.              var valor1 = $("#IDCAJADETEXTO").val();
  3.              alert(valor1);
  4.             }

Te dejo un link http://www.anerbarrena.com/jquery-val-4648/
  #7 (permalink)  
Antiguo 13/01/2016, 10:42
 
Fecha de Ingreso: septiembre-2015
Mensajes: 58
Antigüedad: 9 años, 2 meses
Puntos: 2
Respuesta: ejecutar funcion al cargar pagina

Cita:
Iniciado por ZedGe1505 Ver Mensaje
Debes leer de js xD

Si quieres leer los valores de tus cajas debes hacerlo así

Código Javascript:
Ver original
  1. $(document).ready(function(){ calculo_imp(); })

Código Javascript:
Ver original
  1. function calculo_imp(){
  2.              var valor1 = $("#IDCAJADETEXTO").val();
  3.              alert(valor1);
  4.             }

Te dejo un link [url]http://www.anerbarrena.com/jquery-val-4648/[/url]


gracias por tu respuesta, y si debo leer jeje, investigo pero no entiendo mucho.

mira, segun lo que tu me dices, lo hice de la siguiente forma;

Código Javascript:
Ver original
  1. $(document).ready(function(){
  2.                 var total = $("#total").val(); var vrdcto = $("#vrdcto").val(); var dcto = $("#dcto").val();
  3.                 var totalD = $("#totalD").val(); var vriva = $("#vriva").val(); var iva = $("#iva").val();
  4.                 var vrretefuente = $("#vrretefuente").val(); var retefuente = $("#retefuente").val();
  5.                 var vrica = $("#vrica").val(); var reteica = $("#reteica").val(); var totalG = $("#totalG").val();
  6.                 calculo_imp(total,vrdcto,dcto,totalD,vriva,iva,vrretefuente,retefuente,vrica,reteica,totalG); })

pero aún no se ejecuta al cargar la pagina, que puede ser?.
  #8 (permalink)  
Antiguo 13/01/2016, 10:47
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: ejecutar funcion al cargar pagina

Cita:
Iniciado por ZedGe1505 Ver Mensaje
=O y que ganas??
Cual es la diferencia con $(document).ready()?
La diferencia está en cargar toda una librería para hacer algo que en dos o tres líneas también se puede.
__________________
«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
  #9 (permalink)  
Antiguo 13/01/2016, 10:49
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: ejecutar funcion al cargar pagina

jmg1189, si vas a usar esa función para obtener solo los valores de esos elementos, entonces, tómalos directamente sin utilizar argumentos que serían innecesarios, pero si piensas reutilizar la función con otros elementos, entonces, conserva los argumentos.

Un saludo
__________________
«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
  #10 (permalink)  
Antiguo 13/01/2016, 11:00
 
Fecha de Ingreso: septiembre-2015
Mensajes: 58
Antigüedad: 9 años, 2 meses
Puntos: 2
Respuesta: ejecutar funcion al cargar pagina

Si, lo que pasa es que uso la función en varias cajas, cada que en una de dichas cajas cambia, llama la funcion y me altera los valores de las demas cajas, la idea era que la función se cargara al iniciarl el formulario sin necesidad de ir y cambiar un valor en alguna caja para que calcule, pero la verdad no sé como hacerlo. investigo pero la verdad no encuentro como.
  #11 (permalink)  
Antiguo 13/01/2016, 11:09
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: ejecutar funcion al cargar pagina

Básicamente tienes que pasarle los argumentos a la función, recibirlos en ella y tomar a los elementos:
Código Javascript:
Ver original
  1. function calculo_imp(total, vrdcto1, dcto1, totalD1, vriva1, iva1, vrretefuente1, retefuente1, vrica1, reteica1, totalG1){
  2.     var Total = document.querySelector(total).value,
  3.         Vrdcto1 = document.querySelector(vrdcto1).value,
  4.         Dcto1 = document.querySelector(dcto1).value,
  5.         TotalD1 = document.querySelector(totalD1).value,
  6.         Vriva1 = document.querySelector(vriva1).value,
  7.         Iva1 = document.querySelector(iva1).value,
  8.         Vrretefuente1 = document.querySelector(vrretefuente1).value,
  9.         Retefuente1 = document.querySelector(retefuente1).value,
  10.         Vrica1 = document.querySelector(vrica1).value,
  11.         Reteica1 = document.querySelector(reteica1).value,
  12.         TotalG1 = document.querySelector(totalG1).value;
  13. }

La llamada a la función tendría esta forma:
Código Javascript:
Ver original
  1. calculo_imp("id del campo total", "id del campo vrdcto1", /* el resto de argumentos */);

Y para ejecutarla al cargar la página, basta con hacerlo como te lo indiqué en mi primera respuesta:
Código Javascript:
Ver original
  1. document.addEventListener("DOMContentLoaded", function(){
  2.     calculo_imp("id del campo total", "id del campo vrdcto1", /* el resto de argumentos */);
  3. }, false);

Una vez tomados los valores de cada elemento, puedes proceder a operar con ellos. Como presumo que son valores numéricos por las operaciones que realizas, deberás de aplicarles los métodos de conversión necesarios, como parseFloat que veo que usas en algunas líneas.

Un saludo
__________________
«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
  #12 (permalink)  
Antiguo 13/01/2016, 11:31
 
Fecha de Ingreso: septiembre-2015
Mensajes: 58
Antigüedad: 9 años, 2 meses
Puntos: 2
Respuesta: ejecutar funcion al cargar pagina

gracias por tus respuestas, mira, lo intenté así

Código Javascript:
Ver original
  1. document.addEventListener("DOMContentLoaded", function(){
  2.                 calculo_imp("#total","#vrdescuento","#descuento","#totalD","#vriva","#iva","#vrretefuente","#retefuente","#vrica","#reteica","#totalG");
  3.             }, false);

ubicando los ids de las cajas al llamar la función, pero igual no funcionó.

la función la modifiqué así, y ahora no funciona jeje.

Código Javascript:
Ver original
  1. function calculo_imp(total1,vrdcto1,dcto1,totalD1,vriva1,iva1,vrretefuente1,retefuente1,vrica1,reteica1,totalG1){
  2.                  var total = document.querySelector(total).value,
  3.                 vrdcto1 = document.querySelector(vrdescuento).value,
  4.                 dcto1 = document.querySelector(descuento).value,
  5.                 totalD1 = document.querySelector(totalD).value,
  6.                 vriva1 = document.querySelector(vriva).value,
  7.                 iva1 = document.querySelector(iva).value,
  8.                 vrretefuente1 = document.querySelector(vrretefuente).value,
  9.                 retefuente1 = document.querySelector(retefuente).value,
  10.                 vrica1 = document.querySelector(vrica).value,
  11.                 reteica1 = document.querySelector(reteica).value,
  12.                 totalG1 = document.querySelector(totalG).value;
  13.                 if(total1==""){ total1.value=0; }
  14.                 if(vrdcto1==""){ vrdcto1.value=0; }
  15.                 if(dcto1==""){ dcto1.value=0; }
  16.                 var Dcto = (parseFloat(total1)*parseFloat(vrdcto1))/100;
  17.                 if(Dcto==''){ Dcto.value=0; }
  18.                 dcto1.value=(Dcto).toFixed(2);
  19.                 totalD1.value=(parseFloat(total1)-dcto1.value).toFixed(2);
  20.                 if(totalD1==""){ totalD1.value=0; }
  21.                 if(vriva1=="") { vriva1.value=0; }
  22.                 if(iva1==""){ iva1.value=0; }
  23.                 var iva2 =(totalD1.value*parseFloat(vriva1))/100;
  24.                 iva1.value=(iva2).toFixed(2);
  25.                 if(vrretefuente1==""){  vrretefuente1.value=0; }
  26.                 if(retefuente1==""){  retefuente1.value=0; }
  27.                 var retefuente2 =(totalD1.value*parseFloat(vrretefuente1))/100;
  28.                 retefuente1.value = (retefuente2).toFixed(2);
  29.                 if(vrica1=="") { vrica1.value=0; }
  30.                 if(reteica1=="") { reteica1.value=0; }
  31.                 reteica1.value=((totalD1.value*parseFloat(vrica1))/100).toFixed(2);
  32.                 if(totalG1==""){ totalG1.value=0; }
  33.                 totalG1.value=(parseFloat(totalD1.value)+parseFloat(iva1.value)-parseFloat(retefuente1.value)-parseFloat(reteica1.value)).toFixed(2);
  34.             }

Creo que mejor busco otra forma de hacerlo porque no supe como más hacerlo.
  #13 (permalink)  
Antiguo 13/01/2016, 11:41
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: ejecutar funcion al cargar pagina

Fíjate en la manera en la que estás intentando tomar a los elementos y realizar las operaciones. Estás utilizando los argumentos para almacenar valores en lugar de usarlos para tomar a los elementos que es lo que deberías hacer ya que dichos argumentos son los identificadores de los campos de texto. Incluso en la primera línea intentas tomar a un elemento con el argumento total que no existe ya que tu primer argumento es total1, sin embargo, en el código original era total.

Revisa con calma cada línea y haz las correcciones respectivas.
__________________
«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
  #14 (permalink)  
Antiguo 13/01/2016, 12:47
 
Fecha de Ingreso: septiembre-2015
Mensajes: 58
Antigüedad: 9 años, 2 meses
Puntos: 2
Respuesta: ejecutar funcion al cargar pagina

Cita:
Iniciado por Alexis88 Ver Mensaje
Revisa con calma cada línea y haz las correcciones respectivas.
ok, muchas gracias por tu ayuda, revisaré a ver si logro hacerlo funcionar.
  #15 (permalink)  
Antiguo 13/01/2016, 13:02
 
Fecha de Ingreso: enero-2016
Mensajes: 63
Antigüedad: 8 años, 10 meses
Puntos: 0
Respuesta: ejecutar funcion al cargar pagina

Si lo que quieres es que se ejecute solo al terminar la carga de la web necesitas menter todo en lo siguiente window.onload = function() {
//aquí metes todo
}
  #16 (permalink)  
Antiguo 13/01/2016, 13:10
 
Fecha de Ingreso: septiembre-2015
Mensajes: 58
Antigüedad: 9 años, 2 meses
Puntos: 2
Respuesta: ejecutar funcion al cargar pagina

Cita:
Iniciado por andrinson Ver Mensaje
Si lo que quieres es que se ejecute solo al terminar la carga de la web necesitas menter todo en lo siguiente window.onload = function() {
//aquí metes todo
}
hola, gracias por tu respuesta. Lo que necesito es que pueda invocar la función en el eventoonchange de cada caja y ademas que al iniciar la pagina se ejecute la función. en las cajas me funciona bien al invocar la funcion, pero no pude hacer que pésta también se ejecute al cargar o recargar pagina.
  #17 (permalink)  
Antiguo 13/01/2016, 15:14
 
Fecha de Ingreso: septiembre-2015
Mensajes: 58
Antigüedad: 9 años, 2 meses
Puntos: 2
Respuesta: ejecutar funcion al cargar pagina

Cita:
Iniciado por Alexis88 Ver Mensaje
Revisa con calma cada línea y haz las correcciones respectivas.
Tal vez a alguien le pueda servir, pude solucionarlo modificando la función y así me quedó:

Código Javascript:
Ver original
  1. function calculo_impu(){
  2.                 var total = $("#total").val(), descuento = $("#descuento").val(), vrdescuento = $("#vrdescuento").val(),
  3.                 totalD = $("#totalD").val(), vriva = $("#vriva").val(), iva = $("#iva").val(),
  4.                 vrretefuente = $("#vrretefuente").val(), retefuente = $("#retefuente").val(), vrica = $("#vrica").val(),
  5.                 reteica = $("#reteica").val(), totalG = $("#totalG").val();
  6.                 if(total==""){ total.value=0; }
  7.                 if(descuento==""){ descuento.value=0; }
  8.                 var Dcto = ((parseFloat(total)*parseFloat(descuento))/100).toFixed(2);
  9.                 if(Dcto==''){ Dcto.value=0; }
  10.                 $("#vrdescuento").val(Dcto);
  11.                 var totalD1=(parseFloat(total)-Dcto).toFixed(2);
  12.                 $("#totalD").val(totalD1);
  13.                 if(vriva=="") { vriva.value=0; }
  14.                 if(iva==""){ iva.value=0; }
  15.                 var iva1 =((totalD1*parseFloat(vriva))/100).toFixed(2);
  16.                 $("#iva").val(iva1);
  17.                 if(vrretefuente==""){  vrretefuente.value=0; }
  18.                 if(retefuente==""){  retefuente.value=0; }
  19.                 var retefuente1 =((totalD1*parseFloat(vrretefuente))/100).toFixed(2);
  20.                 $("#retefuente").val(retefuente1);
  21.                 if(vrica=="") { vrica.value=0; }
  22.                 if(reteica=="") { reteica.value=0; }
  23.                 var reteica1=((totalD1*parseFloat(vrica))/100).toFixed(2);
  24.                 $("#reteica").val(reteica1);
  25.                 if(totalG==""){ totalG.value=0; }
  26.                 var totalG1=(parseFloat(totalD1)+parseFloat(iva1)-parseFloat(retefuente1)-parseFloat(reteica1)).toFixed(2);
  27.                 $("#totalG").val(totalG1);
  28.             }
  29.             $(document).ready(function(){
  30.                 calculo_impu();
  31.             });

al final invoco la función cada que a pagina se recargue.
Gracias a todos por su ayuda.
  #18 (permalink)  
Antiguo 13/01/2016, 15:31
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: ejecutar funcion al cargar pagina

Como ya no utilizas argumentos, puedes colocar solo el nombre:
Código Javascript:
Ver original
  1. $(document).ready(calculo_impu);

Un saludo
__________________
«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

Etiquetas: javascript
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:52.