Antje Hofmann: Rechnen

Beitrag lesen

Hallo Muhi

Ich brauche Hilfeee. Komme leider nicht mehr, denke aber, dass ich irgendwo einen Gedankenfehler mache. Nur aber wo?

Ich versuche es mal zu erklären.

function calc()
  {
 /* Dies ist deine Berechnungsfunktion. Sie greift auf die globalen Variablen v2 und v1 zu.*/
 document.myform.einaus.value= v2*v1;
  }

function erstevariable()
  {
  /*diese Funktion liest den Inhalt des Formualelementes in eine   lokale Variable v1 und gibt auch diesen Wert zurück*/

var v1=document.myform.einaus.value;
 return v1
   }
 function zweitevariable()
  {
 /*diese Funktion liest den Inhalt des Formualelementes in eine   lokale Variable v2 und gibt auch diesen Wert zurück*/

var v2=document.myform.einaus.value;
 return v2
  }

Wenn du meine Kommentare aufmerksam liest, so siehst du, dass du in der Funktion calc()auf globale Variablen zurückgreifst.

In den beiden anderen Funktionen erzeugst du jedoch nur lokale Variablen. Globale Variablen gelten immer im gesamten Dokument. Lokale Variablen nur innerhalb der Funktion.

Eine lokale Variable innerhalb einer Funktion erzeugt man durch das Schlüsselwort var. Fehlt dieses Schlüsselwort entsteht eine globale Variable.

Rückgabewerte einer Funktion können weiterverarbeitet werden. Benötigt man keine Weiterverarbeitung, dann braucht auch kein Wert zurückgegeben werden.

<input type="button" value="erstevariable" name="v2">
<input type="button" value="zweitevariable" name="v1">

Diese Button sollen bewirken, dass die Variablen v1 und v2 gesetzt werden. Du versuchst dies zu lösen, indem du den Value des Buttons den Namen der Funktion gibst und den Button mit den gesuchten Variablennamen belegst.

Hier liegt ein grundsätzlicher Denkfehler vor. Buttons sind HTML und kein JavaScript. Sie können auch keine Berechnungswerte speichern (zu mindest nicht ohne einigen Aufwand).

Du möchstest erreichen, dass ein Klick auf den jeweiligen Button die jeweilige Variable setzt. Das erreichst du, indem du den Klick auf den Button überwachst und wenn eine solche Aktion eintritt, deine Funktionen aufrufst.

Zur Überwachung kannst du den Eventhandler onclick verwenden. http://selfhtml.teamone.de/javascript/sprache/eventhandler.htm#onclick

Ändere auch den Namen der Button, damit du klar zwischen den gesetzten (unsichtbaren) Variablen, welche du für die Berechnung benötigst und der Buttonaufgabe unterscheiden kannst.

Ich habe bewußt keine komplette Lösung gepostet. Ich denke, es hilft dir weiter, wenn du die Materie auch verstehst. Solltest du weitere Fragen (die zu deinem Projekt gehören) haben, dann frage ruhig in diesem Thread weiter.

Viele Grüße

Antje