Der Architekt: mehrere Funktionen einbinde

Hallo zusammen,

ich habe das Problem, dass ich mehrere Funktionen in mein HTML mit einbinden möchte, aber irgendwie funktioniert das nicht ganz so wie ich das möchte.

Mein Ziel ist es, dass ich einen Countdownzähler als Inhalt in einer Tabelle haben möchte und eine andere Anzeige ebenfalls als Inhalt in einer anderen Zelle der selben Tabelle haben möchte. Wenn ihr die Lösung so gestalten könntet, dass ich den Countdownzähler mehrmals verwenden kann nur eben mit anderen Daten, wäre das super.

Was ich bisher habe sieht ungefähr so aus:

  
<head>  
 <script type="text/javascript">  
[code lang=javascript]  function countdown() {  
   var Jahr = document.countdownform.Jahr.value,  
  
   ...//noch ein paar Variablen und Code zum umgestalten//..  
  
   document.countdownform.countdownoutput.value = berechneteVariable;  
   setTimeout('countdown()',500);  
  }  
  
  function otherfunction() {  
   var a = document.otherform.anyv.value,  
  
   ...//noch ein paar Variablen und Code zum umgestalten//..  
  
   document.otherform.otheroutput.value = berechneteVariable;  
   setTimeout('otherfuncion()',500);  
  }  

</script>
</head>
[/code]

Ich habe jetzt versucht bei <body onload=""> beide Funktionen mit Komma getrennt einzubinden, ich konnte jedoch immer nur auf die erste zugreifen.
Und wie bereits erwähnt: Wie schaffe ich es dass ich auf beide zugreifen kann? Wie schaffe ich es dass ich countdown() in einer Seite öfters verwenden kann?
OnClick Variante möchte ich gleich mal ausschließen, weil ich möchte, dass die Funktionen direkt bei Aufruf der Seite ausgeführt werden.

Vielen Dank!

  1. hi,

    OnClick Variante möchte ich gleich mal ausschließen, weil ich möchte, dass die Funktionen direkt bei Aufruf der Seite ausgeführt werden.

    Sofern die Funktionen deklariert sind weiter oben, notiere weiter unten:

    <script type="text/javascript">
    funktion();
    nochnefunktion();
    </script>

    Horst

    --
    Wenn der Kommentar nicht zum Code passt, kann auch der Code falsch sein.
  2. function countdown() {
       var Jahr = document.countdownform.Jahr.value,

    ...//noch ein paar Variablen und Code zum umgestalten//..

    document.countdownform.countdownoutput.value = berechneteVariable;
       setTimeout('countdown()',500);
      }

    Schreibe die Funktion variabel an den Stellen, wo sie variabel ist, übergebe ihr Parameter mit den variablen Daten.

    Hier sind offenbar zwei Dinge variabel: Formularname, Formularfeldname und die Funktion soll wieder mit diesen Parametern aufgerufen werden.

    function countdown (formname, fieldname) {  
       var fieldvalue = document.forms[formname].elements[fieldname];  
       ...  
       window.setTimeout(function () {  
          countdown(formname, fieldname); // Funktion mit denselben Parametern noch einmal aufrufen  
       }, 500)  
    }
    

    Ich habe jetzt versucht bei <body onload=""> beide Funktionen mit Komma getrennt einzubinden, ich konnte jedoch immer nur auf die erste zugreifen.

    Das ist nochmal ein zweites Problem.

    Im Prinzip kannst du schreiben:

    window.onload = function () {  
       countdown("formularA", "Feld1");  
       countdown("formularB", "Feld2");  
       ...  
    };
    

    Oder eine Helferfunktion wie addEvent oder addLoadEvent verwenden.
    </archiv/2008/12/t181083/#m1197248>

    Mathias

    1. window.onload = function () {

      countdown("formularA", "Feld1");
         countdown("formularB", "Feld2");
         ...
      };

        
      Hallo Mathias,  
        
      danke erstmal für die schnelle Antwort, ich bin auch ein Stück weiter gekommen. Habe allerdings immer noch ein Problem.  
        
      Ich habe die Funktion jetzt erstmal wie folgt implementiert:  
        
      `<body onload="mysum('anyform', 'c', document.anyform.a.value, document.anyform.b.value);">`{:.language-html}  
        
      Die Funktion ist wie folgt definiert  
        
      `function mysum (formname, fieldname, a, b)`{:.language-javascript}  
        
      Ich habe eine Ausgabe von formname eingebaut und bekomme als Resultat undefiened zurück. Woran liegt das?
      
      1. <body onload="mysum('anyform', 'c', document.anyform.a.value, document.anyform.b.value);">

        Die Funktion ist wie folgt definiert

        function mysum (formname, fieldname, a, b)

        Ich habe eine Ausgabe von formname eingebaut und bekomme als Resultat undefiened zurück. Woran liegt das?

        Keine Ahnung. Wenn du einen ersten Parameter übergibst, sollte der auch in der Funktion ankommen und unter formname verfügbar sein.
        Zeige uns mal den gesamten relevanten Code.

        Mathias

        1. Danke für die Hilfe,

          habe jetzt nach einigen verzweifleten Versuchen den Fehler gefunden und behoben. Inzwischen geht es so wie es soll.