Foros del Web » Programando para Internet » Javascript »

Carga de una función desde archivo js

Estas en el tema de Carga de una función desde archivo js en el foro de Javascript en Foros del Web. Tengo un pequeño problemilla Tengo un archivo js y dentro de él una función que devuelve una fecha, llamada fecha(). Hasta aquí todo normal. Bien, ...
  #1 (permalink)  
Antiguo 19/11/2002, 06:43
 
Fecha de Ingreso: noviembre-2002
Mensajes: 65
Antigüedad: 21 años, 5 meses
Puntos: 0
Carga de una función desde archivo js

Tengo un pequeño problemilla
Tengo un archivo js y dentro de él una función que devuelve una fecha, llamada fecha(). Hasta aquí todo normal.

Bien, en una página tengo un input text que quiero que al cargar la página tenga el valor que devuelve la función fecha, pero no logro nada. ¿Sabéis dónde puede estar mi fallo?

El código que nos interesa es:
<head>

<script LANGUAGE="JavaScript" src="../javascript/aida.js"></script>
</head>

<input type=text name=fechaDesde value='javascript:fecha();'>

También he probado:

<input type=text name=fechaDesde value="javascript:fecha();">
Y solo consigo que aparezca el literal `javascript:fecha()´ dentro del input.

La función fecha, está dentro de aida.js


Muchas gracias a todo el que pueda ayudarme. :)
  #2 (permalink)  
Antiguo 19/11/2002, 06:59
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Buenas,

prueba a añadir una línea en tu function fecha()

document.nombreform.fechaDesde.value= variabldelafecha

Luego a tu campo no le pides nada...

<input type=text name=fechaDesde >


pero debajo le pides que llame a la función:

<script>fecha()</script>

Sin ver el script ni el resto del código es lo que se me ocurre.
Seguramente habrán otras formas. Prueba si te funciona asi.

un saludo
  #3 (permalink)  
Antiguo 19/11/2002, 10:07
 
Fecha de Ingreso: noviembre-2002
Mensajes: 65
Antigüedad: 21 años, 5 meses
Puntos: 0
Muchas gracias, Tunait. Tu propuesta resuelve el problema, pero yo trato de hacerlo de otra forma, pues esta solución no es muy generalista.
Por si te sirce de algo, te mando el código de aida.js:

function fecha()
{
var hoy = new Date();
var dia = hoy.getDate();
var mes = hoy.getMonth() +1;
var anyo = hoy.getYear();

var fh = dia +"/"+mes+"/"+anyo;
document.prueba.fechaDesde.value = fh;
}

El fragmento de página desde donde se le llama es:

<table width=”60%" border="1">
<tr>
<td>Desde:</td>
<td><input type="text" name="fechaDesde" value=""></td>
<script>fecha()</script>";
<td>Hasta:</td>
<td><input type="text" name="fechaHasta" value="00"></td>
</tr>
</table>

Como ves, eso es lo que me propusiste tú y funciona a la perfección. El problema es que a esa función se va a llamar desde más campos y quisiera que fuese generalista.
¿Alguna idea?

Gracias :)
  #4 (permalink)  
Antiguo 19/11/2002, 11:08
Avatar de mikel_gomez  
Fecha de Ingreso: febrero-2001
Mensajes: 482
Antigüedad: 23 años, 2 meses
Puntos: 3
Re: Cargar valores de formulario.

twinsen2:

La función fecha() solo debería devolver la fecha para ser generalista como tú dices. Luego puedes tener otra(s) funciones en ficheros externos o en la misma página que te carguen las cajas de texto adecuadamente, y lo mejor es que se llamaran a través del evento onload y no detrás mismo del <input> para evitar problemas en aquellos casos en que el navegador intenta ejecutar el script antes de cargar el formulario completo.
Código:
<html>
  <head>
    <script type="text/javascript">
    <!--
      function fecha() {
        var hoy  = new Date();
        var dia  = hoy.getDate();
        var mes  = hoy.getMonth() +1;
        var anyo = hoy.getYear();
        var fh   = dia + '/' + mes + '/' + anyo;
        return fh
      }
      function cargaFechas() {
        document.prueba.fechaDesde.value = fecha();
        document.prueba.fechaHasta.value = fecha();
      }
    //-->
    </script>
  </head>
  <body onload="cargaFechas()">
    <form name="prueba">
      <table>
        <tr>
          <td>Desde:</td>
          <td>
            <input type="text" name="fechaDesde" value="" />
          </td>
          <td>Hasta:</td>
          <td>
            <input type="text" name="fechaHasta" value="" />
          </td>
        </tr>
      </table>
    </form>
  </body>
</html>
Saludos.
__________________
Mikel Gómez
Hay que aprender mucho para saber poco

  #5 (permalink)  
Antiguo 20/11/2002, 02:44
 
Fecha de Ingreso: noviembre-2002
Mensajes: 65
Antigüedad: 21 años, 5 meses
Puntos: 0
La idea es que se pueda hacer la carga de la fecha desde la página, por ejemplo, algo así:

<html>
<head>
<script type="text/javascript">
<!--
function fecha() {
var hoy = new Date();
var dia = hoy.getDate();
var mes = hoy.getMonth() +1;
var anyo = hoy.getYear();
var fh = dia + '/' + mes + '/' + anyo;
return fh
}
//-->
</script>
</head>
<body onload="fecha()">
<form name="prueba">
<table>
<tr>
<td>Desde:</td>
<td>
<input type="text" name="fechaDesde" value="" />
<javascript:"document.prueba.fechaDesde.value = 'fecha()'">
</td>
<td>Hasta:</td>
<td>
<input type="text" name="fechaHasta" value="" />
</td>
</tr>
</table>
</form>
</body>
</html>

Pero así no obtengo nada, ¿sabes donde puede estar mi fallo? Estoy comenzando con Javascript
y no estoy muy fuerte con la sintaxis.
El motivo de meterlo en la página y no en la cabecera como una función es que las páginas las sirve Tomcat y utilizo la misma cabecera para muchas páginas, algunas de las cuales no tienen nada de fechas.
Muchas gracias
:)
  #6 (permalink)  
Antiguo 20/11/2002, 04:18
Avatar de mikel_gomez  
Fecha de Ingreso: febrero-2001
Mensajes: 482
Antigüedad: 23 años, 2 meses
Puntos: 3
Re: Carga de valores en formulario

Bien twinsen2, si no deseas incluir el javascript de carga en la cabecera, mi recomendación es que lo pongas detrás del
formulario como en esta nueva versión del mismo ejemplo:
(en este caso no tiene sentido el onload)
Código:
<html>
  <head>
    <script type="text/javascript">
    <!--
      function fecha() {
        var hoy  = new Date();
        var dia  = hoy.getDate();
        var mes  = hoy.getMonth() +1;
        var anyo = hoy.getYear();
        var fh   = dia + '/' + mes + '/' + anyo;
        return fh
      }
    //-->
    </script>
  </head>
  <body>
    <form name="prueba">
      <table>
        <tr>
          <td>Desde:</td>
          <td>
            <input type="text" name="fechaDesde" value="" />
          </td>
          <td>Hasta:</td>
          <td>
            <input type="text" name="fechaHasta" value="" />
          </td>
        </tr>
      </table>
    </form>
    <script type="text/javascript">
    <!--
        document.prueba.fechaDesde.value = fecha();
        document.prueba.fechaHasta.value = fecha();
    //-->
    </script>
  </body>
</html>
Saludos.
__________________
Mikel Gómez
Hay que aprender mucho para saber poco

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 07:56.