Frage von computerfan001, 79

Javascript wie erstellt man einen Umrechner Euro-Dollar?

Hallo,

ich bin dabei einen Umrechner zu erstellen. Mit einer Tabelle, wo dann der Umrechnungskurs zwischen 1-10 Euro angezeigt wird.

mein Problem: ich schaffe es nicht, die Zahlen Zeilenweise einzutragen und diese einzeln einzutragen. Bei der for Schleife wird irgendwie nur die letzte Zajl angezeigt. Wie kann ich dies ändern?

MfG

Antwort
von computerfan001, 29

Veränderte Datei . Anderes Bild nicht beachten. MfG

Antwort
von computerfan001, 36

Sry hier die Datei.


Mein Problem bei der Datei ist, dass die Variable i als undefined angezeigt wird und ich wissen möchte, wie man diese definieren kann.

Kommentar von Sarkophator ,

Umschließ den with-Block mit der for-Schleife, dann klappts auch. (Mal abgesehen davon solltest du auf with besser verzichten da es an manchen Stellen zu unerwartetem Verhalten führt, daher auch im strict mode nicht erlaubt.)

Kommentar von computerfan001 ,

danke für die Antwort. Habe es nun so gemacht. Das Problem ist nur, dass meine Tabelle mit den 10 Werten, also 1 Euro = .....; nächste Zeile: 2 Euro  =.... , sondern es wird nur 1 Zeile erstellt, wo nur steht 10 Euro = ... . Können Sie mir da weiterhelfen? ( Bild von der veränderten Datei steht auf dem anderern Kommentar) MfG

Kommentar von maximilianus7 ,

du überschreibst ja s1.value und s2.value statt diese zu ergänzen, so dass die werte des letzten durchlaufs stehen bleiben.

davon abgesehen, dass die formeln keinen sinn machen.

Kommentar von computerfan001 ,

Danke für die Antwort, Wie meinst du das mit dem ergänzen? (Habe gerade erst mit Javascript angefangen, habe daher keine große Erfahrung) MfG

Kommentar von Sarkophator ,

Gibt mehrere Probleme. Als erstes meinte ich dass die for-Schleife den with-Block umschließen soll, im Moment steht die for-Schleife einfach dahinter. Also sollte es wie folgt sein:

function erzeuge_tabellen() {
  for(var i = 0; i < 10; i++) {
    with(document.form1) {
      //...
    }
  }
}

Alternativ kannst du auch gerade wie in deinem Fall das auch umgekehrt machen und einfach den Inhalt des with-Blocks mit der for-Schleife umschließen, das ist beim nächsten Punkt sogar die bessere Lösung:

function erzeuge_tabellen() {
  with(document.form1) {
    for(var i = 0; i < 10; i++) {
      //...
    }
  }
}

Auf diese Weise wird erstmal deine Schleife überhaupt nützlich, denn die Schleife durchgeht nur das, was von der Schleife auch umschlossen ist.

Dann ist das nächste Problem, dass du den Wert von S1 und S2 so wie oben erwähnt immer überschreibst, da du "S1.value = [Wert]" im Code stehen hast. Da du allerdings den Inhalt um eine weitere Zeile erweitern möchtest, solltest du vor Beginn der Schleife den Inhalt erstmal leeren (S1.value = "") und anschließend mittels += erweitern. (S1.value += "Text" ist das gleiche wie S1.value = S1.value + "Text") Hierbei solltest du auch beachten, dass du einen Zeilenumbruch am Ende des Hinzuzufügenden Strings setzen solltest, damit auch ein Zeilenumbruch geschieht, wie folgt:

function erzeuge_tabellen() {
  with(document.form1) {
    S1.value = S2.value = "";
    faktor = parseFloat(eurofeld.value);

    for(var i = 0; i < 10; i++) {
      S1.value += i + "Euro = " + eurofeld.value*1.1 + "Dollar\r\n";
      S2.value += i + "Dollar = " + eurofeld.value/1.1 + "Euro\r\n";
    }
  }
}

Damit sollte das dann auch korrekt angezeigt werden.

Kommentar von computerfan001 ,

Vielen Dank, habt mir sehr geholfen. Würde euch gerne die hilfreichste Antwort geben, weiß aber nicht, wie es als Kommentar funktioniert.

Ich bedanke mich auch bei den anderen für deren Hilfe und Bemühungen

MfG

Antwort
von webflexer, 58

Ohne deinen Code können wir nicht helfen oder sollen wir raten was du gemacht hast?

Kommentar von computerfan001 ,

Hallo, hab es jetzt eingefügt. MfG

Keine passende Antwort gefunden?

Fragen Sie die Community