Christian: Warum funktioniert es nicht?

Hallo, ich habe ein Problem.
Ich bin gerade dabei, selbst geschriebene JavaScripte zu nützlichen Zwecken zu benutzen. Da ich noch nicht so viel Ahnung und Erfahrung von/mit JavaScript habe, ist es halbwegs verständlich, dass das nachfolgende Script wahrscheinlich voll von Fehlern steckt. Wenn jemand hier Zeit hat, einem Neuling die Fehler zu zeigen, wäre ich sehr dankbar, aber wenn jemand nur kritisieren möchte, kann ich auf seine Hilfe verzichten. Hier das Script:
(Es geht darum, dass der Benutzer 2 Zahlen eingibt und dann ein Ergebnis erhält, sobald er auf OK klickt.)

<html>
<head>
<title>JavaScript-Übung</title>
</head>
<script language="javascript" type="text/javascript">
function rechnen()
{
var zahl1=document.zahl1;
var zahl2=document.zahl2;
var ergebnis=document.ergebnis;
var ausgabe=document.ausgabe;

ergebnis="zahl1+zahl2";
ausgabe="Das gewünschte Ergebnis lautet" +ergebnis;
}
</script>
<body onload="rechnen()">
<form name="rechnen">
<input type="text" name="zahl1" size="2"> +
<input type="text" name="zahl2" size="2"> =
<input type="text" name="ergebnis" size="5">
<input type="submit" name="submit" value="OK">
<br>
<input type="text" name="ausgabe" size="30">
</form>
</body>
</html>

Vielen Dank,
Christian

  1. Moin,

    ergebnis="zahl1+zahl2"; muss
    ergebnis=zahl1+zahl2; heißen.

    LG Jakob

    --
    Wer andern eine Bratwurst brät, hat meist ein Bratwurstbratgerät!
    1. Hallo,

      Danke für deine Antwort, also schon mal ein Fehler weg.
      Aber das war bestimmt nicht der letzte :-)
      Denn es funktioniert immer noch nicht. Ich vermute fast, dass da was mit den Wertzuweisungen für die name-Attribute nicht stimmt, oder eben, wie sie durch das JavaScript angesprochen werden. Außerdem bin ich mir nicht sicher, ob mit einem input type="submit" der gewünschte Recheneffekt erreicht wird.

      Christian

      1. Hi,

        du musst die Funktion explizit aufrufen (z.B. <input type="button" onClick="pruefen()">)

        LG Jakob

        --
        Wer andern eine Bratwurst brät, hat meist ein Bratwurstbratgerät!
        1. Hi,

          sorry, ich war eben dumm :-)

          Erstmal heißt die Funktion ja "rechnen" und zweitens muss sie aufgerufen werden, nach dem das Formular auftaucht (weil sonst noch keine Codefelder mit Werten vorhanden sind)

          LG Jakob

          --
          Wer andern eine Bratwurst brät, hat meist ein Bratwurstbratgerät!
  2. Hallo Christian

    <html>
    <head>
    <title>JavaScript-Übung</title>
    </head>
    <script language="javascript" type="text/javascript">
    function rechnen()
    {
    var zahl1=document.zahl1;

    Würde ich  var zahl1=document.rechnen.zahl1.value;  nehmen

    var zahl2=document.zahl2;

    var zahl1=document.rechnen.zahl2.value;

    var ergebnis=document.ergebnis;
    var ausgabe=document.ausgabe;

    Diese beiden zeilen kannst du soweit ich sehe weglassen.

    ergebnis="zahl1+zahl2";

    document.rechnen.ergebnis.value=zahl1+zahl2;

    ausgabe="Das gewünschte Ergebnis lautet" +ergebnis;

    document.rechnen.ausgabe.value = "Das gewünschte Ergebnis lautet"+document.rechnen.ergebnis.value;

    }
    </script>
    <body onload="rechnen()">

    Bist du dir sicher, dass du die funktion beim Laden der Seite ausführen willst?

    <form name="rechnen">

    <form action="..." name="rechnen" onsubmit="rechnen();"> wäre wahrscheinlich sinnvoller

    <input type="text" name="zahl1" size="2"> +
    <input type="text" name="zahl2" size="2"> =
    <input type="text" name="ergebnis" size="5">
    <input type="submit" name="submit" value="OK">
    <br>
    <input type="text" name="ausgabe" size="30">
    </form>
    </body>
    </html>

    Probier es mal damit. Müsste eigentlich funktionieren.

    Schöne Grüße

    Johannes

    --
    This posting comes with ABSOLUTELY NO WARRANTY, to the extend permitted by applicable law.
    ss:| zu:) ls:[ fo:) de:] va:) ch:? sh:( n4:& rl:( br:< js:| ie:{ fl:( mo:}
    Selfcode? Was soll denn das? http://emmanuel.dammerer.at/selfcode.html
    1. Hallo Johannes, erstmal vielen Dank.
      Eine Frage noch:
      Du hattest geschrieben:
      <form action="...">
      Ist es Pflicht, das action-Attribut zu setzen? Denn ich wüsste nicht, welchen Wert ich ihm zuweisen sollte.
      Christian

      1. Hallo Christian

        Du hattest geschrieben:
        <form action="...">
        Ist es Pflicht, das action-Attribut zu setzen?

        Ja, laut http://www.w3.org/TR/html401/interact/forms.html#h-17.3

        Denn ich wüsste nicht, welchen Wert ich ihm zuweisen sollte.

        Da du das Formular ja nicht auf einer anderen Seite verarbeitest, würde ich die Seite, auf der das Formular ist verwenden.

        Schöne Grüße

        Johannes

        --
        This posting comes with ABSOLUTELY NO WARRANTY, to the extend permitted by applicable law.
        ss:| zu:) ls:[ fo:) de:] va:) ch:? sh:( n4:& rl:( br:< js:| ie:{ fl:( mo:}
        Selfcode? Was soll denn das? http://emmanuel.dammerer.at/selfcode.html