pinguini: Thema: Probl. m. Fkt, die sich selbst aufrufen soll

Hallo,

hat jemand vielleicht eine Idee, warum das nicht funktioniert:

function wert_schrittweise_angleichen(){
if(document.form.testtext.value > document.form.testtext2.value)
document.form.testtext2.value = (Number(document.form.test2.value) + 5).toFixed(1);
setTimeout("wert_schrittweise_angleichen()", 1000);
}

Der Wert in testtext2 soll pro Sekunde um 5 erhöht werden, bis er den Wert in testtext erreicht hat.

Der Aufruf der Funktion mit dem timeout funktioniert aber nicht, der Wert in testtext2 wird nur 1x um 5 erhöht

(klar muss ich das noch mit -5 machen, aber s.o. funktioniert ja schon nicht)

danke, Pingu

  1. Hi,

    if(document.form.testtext.value > document.form.testtext2.value)

    dies ist beispielsweise nicht gegeben, wenn der erste Wert "10000000000" beträgt und der zweite "2".

    document.form.testtext2.value = (Number(document.form.test2.value) + 5).toFixed(1);

    Hier kannst Du auf einmal mit Zahlen umgehen.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. document.form.testtext2.value = (Number(document.form.test2.value) + 5).toFixed(1);

      Hier kannst Du auf einmal mit Zahlen umgehen.

      Super, Cheatah, danke für den Gedankenanstoß !!! Jetzt funzt es.

      an alle anderen: auch danke :)

  2. hi,

    Der Wert in testtext2 soll pro Sekunde um 5 erhöht werden, bis er den Wert in testtext erreicht hat.

    Wie sind denn die Startwerte in den beiden Feldern?

    Der Aufruf der Funktion mit dem timeout funktioniert aber nicht, der Wert in testtext2 wird nur 1x um 5 erhöht

    Ist es Absicht, dass setTimeout() unabhängig von der IF-Bedingung aufgerufen wird, und du damit eine bis in alle Ewigkeit laufende Schleife generiert hast?

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Ist es Absicht, dass setTimeout() unabhängig von der IF-Bedingung aufgerufen wird, und du damit eine bis in alle Ewigkeit laufende Schleife generiert hast?

      Nein, das war ein Versehen. das Timeout ist etwas verrutscht ... Das stand mal in der If- Bedingung.

      pingu

  3. Hallo,

    hat jemand vielleicht eine Idee, warum das nicht funktioniert:

    function wert_schrittweise_angleichen(){
    if(document.form.testtext.value > document.form.testtext2.value)
    document.form.testtext2.value = (Number(document.form.test2.value) + 5).toFixed(1);
    setTimeout("wert_schrittweise_angleichen()", 1000);
    }

    Der Wert in testtext2 soll pro Sekunde um 5 erhöht werden, bis er den Wert in testtext erreicht hat.

    Der Aufruf der Funktion mit dem timeout funktioniert aber nicht, der Wert in testtext2 wird nur 1x um 5 erhöht

    (klar muss ich das noch mit -5 machen, aber s.o. funktioniert ja schon nicht)

    danke, Pingu

    Hallo Pingu,

    mein Skript mußt Du ein bischen anpassen:

    <HTML>
    <BODY>
    <SCRIPT>
    var wert1="1000";
    var wert2="995";
    function wert_schrittweise_angleichen() {
       if (Number(wert1) > Number(wert2)) {
          wert2=(Number(wert2)+5);
          alert("wert2="+wert2);
          setTimeout("wert_schrittweise_angleichen()",1000);
       }
    }
    </SCRIPT>
    </BODY>
    </HTML>

    Gruß

    Hans