Thema: Probl. m. Fkt, die sich selbst aufrufen soll
pinguini
- javascript
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
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
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 :)
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
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
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