Ver Mensaje Individual
  #4 (permalink)  
Antiguo 11/03/2014, 16:46
jarios
 
Fecha de Ingreso: mayo-2011
Ubicación: Zaragoza
Mensajes: 58
Antigüedad: 13 años
Puntos: 5
Respuesta: Ejecutar funcion al cargar página

La funcion getWeekNr() devuelve sem asi que esto onload="getWeekNr();" no tiene sentido por que no estas depositando el valor de sem en ningun lado.

La line que incluye andresgarciadev coloca el valor de sem dentro del input si, pero al usar http://jsfiddle.net no me queda del todo claro desde donde se hace la llamada a la funcion. En general, yo cargaria primero la funcion, luego el documento y al final llamaria a la funcion para cargar el valor que devuelve dentro del input (a ver si me he explicado bien):

Código HTML:
Ver original
  1. ...
  2. ...
  3. <script type="text/javascript">
  4. function getWeekNr(){
  5.     var now=new Date(),i=0,f,sem=(new Date(now.getFullYear(), 0,1).getDay()>0)?1:0;
  6.     while( (f=new Date(now.getFullYear(), 0, ++i)) < now ){
  7.         if(!f.getDay()){
  8.             sem++;
  9.         }
  10.     }
  11.     return sem;
  12. }
  13. </head>
  14. <input name="semana" type="text" class="tb836" id="semana" size="5" readonly="readonly" />
  15. document.getElementById('semana').value=getWeekNr();
  16. </body>
  17. ...

Actualizo: Si quieres puedes usar addEventListener y asi el codigo javascript puedes llevarlo fuera:

Código Javascript:
Ver original
  1. window.addEventListener('load',getWeekNr());
  2. function getWeekNr(){
  3.     var now=new Date(),i=0,f,sem=(new Date(now.getFullYear(), 0,1).getDay()>0)?1:0;
  4.     while( (f=new Date(now.getFullYear(), 0, ++i)) < now ){
  5.         if(!f.getDay()){
  6.             sem++;
  7.         }
  8.     }
  9. document.getElementById('semana').value=sem;
  10. }

Fijate que el valor de sem lo coloco dentro del input con getElementB...

Igual que el anterior este codigo tiene que estar al final, antes de cerrar body.

Saludos.

Última edición por jarios; 11/03/2014 a las 16:57