Warum funktioniert es nicht?
Christian
- javascript
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
Moin,
ergebnis="zahl1+zahl2"; muss
ergebnis=zahl1+zahl2; heißen.
LG Jakob
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
Hi,
du musst die Funktion explizit aufrufen (z.B. <input type="button" onClick="pruefen()">)
LG Jakob
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
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
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
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