• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Nach dem Betätigen des Buttons bleibt der Wert nicht erhalten

samid

New member
Hallo zusammen,

bin gerade bei Durcharbeiten eines Beispiels (Modifiziert mit Bootstrap) aus dem Javascript Buch von Galileo. Alles funktioniert soweit, nur ein Problem habe ich dabei. Wenn ich den Button betätige, dann erscheint der Wert kurzzeitig im Ergebnisfeld und verschwindet gleich wieder. Ich komme nicht drauf wieso. Hier ist der Code:
HTML:
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Euro-Umrechner</title>

    <!-- CSS Styles -->
    <link href="css/bootstrap.min.css" rel="stylesheet">
    <link rel="stylesheet" href="style.css">
    <!--[if lt IE 9]>
      <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
      <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
    <script type="text/javascript">
      window.onload = function() {
        function umrechnen(f) {
          var betrag = f.betrag.value;
          
          if (betrag.indexOf(",") != -1) {
            betrag = betrag.substring(0, betrag.indexOf(",")) + "."
                    + betrag.substring(betrag.indexOf(",")+1, betrag.length);
          }

          if (f.umrechnung[0].checked) {
            f.ausgabe.value = betrag / 1.95583;
          } else if (f.umrechnung[1].checked) {
            f.ausgabe.value = 1.95583 * betrag;
          } else {
            bootbox.alert("Es wurde nichts ausgewählt");
          }
        }

        var button = document.getElementById("button1");
        button.addEventListener("click", function() {umrechnen(this.form);}, false);

      }
    </script>

  </head>
  <body>
    <!-- Start Code -->
    <div class="container">
      <div class="row">
        <div class="col-lg-12">
          <h1>Währungsrechner</h1>
          <br />
          <form action="" role="form">
            <label class="radio-inline">
              <input type="radio" name="umrechnung" value="DMEUR">DM nach Euro
            </label>
            <label class="radio-inline">
              <input type="radio" name="umrechnung" value="EURDM">Euro nach DM
            </label>
            <div class="form-group">
              <br /><input type="text" name="betrag" class="form-control">
            </div>
            <button class="btn btn-default" id="button1">Umrechnen!</button>
            <div class="form-group">
              <br /><input type="text" name="ausgabe" class="form-control">
            </div>
          </form>
        </div>
      </div>
    </div>
    <!-- End Code -->

    <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    <script src="js/bootstrap.min.js"></script>
    <script src="js/bootbox.min.js"></script>
  </body>
</html>

Vielleicht sieht jemand den Fehler. Danke für die Antworten.

Gruß
Samid
 
Weil ich das erst letztens in dem anderen Thread geantwortet habe ;)
 
Aso :) Dein Wiederholungstonband :)
Aber inhaltlich bin ich unsicher, ob die HTML Checker bei einem Formularfeld ohne Formular nicht meckern.
 
außerdem kann man so sehr schön alle Formulardaten eines Formulars einsammeln, ohne jedes einzelne Feld anfassen zu müssen (ok, nicht in diesem Fall).
 
Ahh ok,

und wie verhindere ich, dass die Formulardaten weitergesendet werden. Oder ist es eher unüblich für solche Aufgaben überhaupt ein Formular zu benützen. Denn wenn ich diese Aufgabe ohne <form>-Tags und ohne Jquery lösen will, muss ich ja für jeden Radiobutton und für jedes Eingabefeld eine Variable anlegen um die Werte auslesen zu können. Oder?
 
Super habs verstanden. Der default Wert für einen button ist submit. Ich habe jetzt extra das Attr. type="button" eingefügt und jetzt funktioniert es. Danke.
 
Ah cool, danke für den Test, Julian. Irgendwo hab ich eine Stelle, wo ständig darüber gemeckert wird, wenn ein Formularfeld ohne Formular gefunden wird. Kann aber auch ein Perl Modul gewesen sein.
 
Zurück
Oben