Harlequin: i++ Schleife

Beitrag lesen

Yerf!

In meiner Textbox steht folgendes: Datei1.pdf , was ich vorhin meinte sollte ja so sein, dass wenn ich auf den Button klicke immer plus 1 dazu addiert wird, also Datei2.pdf und so weiter.

Das macht das ganze etwas schwieriger, aber nicht unlösbar.

function plus()
{
var s;

Hm, eine variable s mit nicht deiniertem Wert

s = parseInt(s);

Der wird nach Integer gewandelt

var f = document.getElementById("TextBox").value = "Datei"+f+".pdf";

Hier wird von rechts nach links gearbeitet, d.h. due weist dem Value deines Inputs einen text zu und diesen dann der variablen f.

f = parseInt(f);

Das wird nicht funktionieren, da es kein reiner zahlenwert ist.

s = f + 1;

somit kann man auch nicht Addieren

document.getElementById("TextBox").value = "Datei"+s+".pdf";

Dies erzeugt dann die bekannte Ausgabe, da NAN die Ausgabe für "keine zahl" ist.

}


> ~~~html
  

> <input type="text" id="TextBox" name="TextBox" value="Datei1.pdf"/>  
> <input type="button" onclick="plus()"/>  
> 

Was mache ich falsch? In der TextBox erscheint dann "DateiNAN.pdf"

Einiges... die ersten 2 zeilen können erst mal entfallen, da du s später sowieso mit dem Ergebnis der Addition überschreibst.

Spannend wirds in der 3. Zeile, da musst du aus dem Strin die Zahl extrahieren, pasreInt kann das in der Form nicht alleine. Wenn der Aufbau immer gleich ist kann man dazu z.B. http://de.selfhtml.org/javascript/objekte/string.htm#substr@title=substr() verwenden, also:

var f = document.getElementById("TextBox").value.substr(5,1);

Sollte der Aufbau schwanken (anzahl der Ziffern z.B.) musst du evtl. die Position des Punktes noch ermitteln, die Übersicht über die String-Methoden sollte da weiterhelfen.

Gruß,

Harlequin

--
<!--[if IE]>This page is best viewed with a webbrowser. Get one today!<![endif]-->