JavaScript &[HTML]Finde den Fehler nicht

Proggy

Cadet 3rd Year
Registriert
Jan. 2010
Beiträge
54
Hallo Leute,

ich habe im Info-Unterricht dieses HTML-Dokument geschrieben. Es soll eigentlich Euro in Dollar und Dollar in Euro umrechnen können. Es funktioniert aber leider nicht, es wird nicht mal "Fehler auf der Seite" o.ä. angezeigt.
Vielleicht findet hier jemand den Fehler, würde mich sehr freuen.
HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>Euro-Dollar-Umrechner</title>
    <script type="text/javascript">
      function funktion()
        {
          var eingabe=document.formular.zahl.value;
	  var umrechnung=document.formular.waehrung.value;
	  if(umrechnung=="eurodollar")
            {
	      var euro=eingabe*1.36;
	      alert(eingabe+"$="+euro+"€");
	    }
	  if(umrechnung=="dollareuro")
	    {
	      var dollar=eingabe*0.72;
	      alert(eingabe+"€="+dollar+"$");
	    }
	}
    </script>
  </head>
  <body>
    <h1>Euro in Dollar/Dollar in Euro</h1>
    <form name="formular">
	  <input type="radio" name="waehrung" value="eurodollar">Euro in Dollar umrechnen</input><br>
	  <input type="radio" name="waehrung" value="dollareuro">Dollar in Euro umrechnen</input><br>
	  <input type="text" name="zahl">
	  <input type="button" value="Umrechnen" onclick="funktion()">
    </form>  
  </body>
</html>
Josh
 
Die beiden Radiobox Input Felder haben den gleichen Namen, somit wird ein Array übergeben.
Folgender Code sollte eigentlich funktionieren. (AdHoc Lösung)

HTML:
<script type="text/javascript">
    function funktion() {
        var eingabe=document.formular.zahl.value;
        // Prüfen, ob das erste Eingabefeld mit dem Namen "waehrung" angeklickt wurde
        if (document.formular.waehrung[0].checked) {
            // Erstes Feld wurde angeklickt, Wert des ersten Feldes lesen
            var umrechnung=document.formular.waehrung[0].value;
        } else {
            // Erstes Feld wurde nicht angelickt, daher den Wert des 2. Feldes auslesen
            // unsauber, da dies auch der Fall ist, wenn keine Auswahl getroffen wurde
            var umrechnung=document.formular.waehrung[1].value;
        }
        if(umrechnung=="eurodollar") {
            var euro=eingabe*1.36;
            alert(eingabe+"$="+euro+"€");
        }
        if(umrechnung=="dollareuro")
        {
            var dollar=eingabe*0.72;
            alert(eingabe+"€="+dollar+"$");
        }
    }
    </script>
Wichtig ist im Prinzip die Angabe welches Feld aus dem Eingabefeldarray du auslesen möchtest. Das Feld wird durch den Indexwert in den eckigen Klammen angeben.

Schau dir auch mal die Seite: http://de.selfhtml.org/javascript/objekte/array.htm an. (Grundlagen der Arrays) bzw. http://de.selfhtml.org/javascript/objekte/document.htm#get_elements_by_name ("document.getElementsByName('waehrung')" ist "document.formular.waehrung" ziemlich ähnlich.)
 
Zuletzt bearbeitet:
Ja danke jetzt funktioniert es.
Kannst du mir vielleicht noch erklären was da jetzt anders ist, also was
Code:
        if (document.formular.waehrung[0].checked) {
            var umrechnung=document.formular.waehrung[0].value;
        } else {
            var umrechnung=document.formular.waehrung[1].value;
        }
bewirkt?

Josh
 
Hab die Erklärungen gerade dazu editiert.
 
Okay danke alles klar.
selfhtml.org werde ich mir auch nochmal anschauen.

Josh
 
Zurück
Oben