Formularauswertung (Eingabefeld)
Sarah
- javascript
Hallo zusammen,
also ich möchte gerne ein Eingabefeld auswerten, was ich ja dann z.b. mit document.frm.hoehe.value machen kann.. Aber wie kann ich dann im folgenden der Zahl die eingegeben wird einer Variable zuordnen?
Hier ist mal mein Quelltext, sodass ihr vllt besser versteht was ich meine..
<html>
<head>
<title>Turm 2</title>
</head>
<body>
<div align="center">
<font face="Arial">
<h1>Die höchsten Türme der Welt</h1>
<form name="frm">
Höhe: <input name="hoehe" type="text" size="30" maxlength="30">
<input type="button" value="Berechne" onClick="rechnung()">
</form>
<script language="JavaScript">
<!--
function rechnung()
{
if (document.frm.hoehe.value == 0)
{
alert ("Ungültige Zahl.");
}
else
{
var h, v, t, g;
g=10;
document.write ("<table rules=all width=150>");
for (h=10; h<531; h=(h+10))
{
t=Math.sqrt((0,5*g)/h);
t=t.toFixed(2);
v=g*t;
v=v.toFixed(2);
document.write ("<tr><td bgcolor=#BFBFBF><b>"+h+" m</td><td>"+v+"</td><td>"+t+"</td></tr>");
}
document.write("</table>")
}
}
//-->
</script>
</body>
</html>
Es sind bestimmt noch einige andere Unstimmingkeiten und Fehler drin, aber zunächst hoffe ich mal ihr könnt mir meine obige Frage beantworten.
Danke :)
@@Sarah:
Hallo zusammen,
also ich möchte gerne ein Eingabefeld auswerten, was ich ja dann z.b. mit document.frm.hoehe.value machen kann..
Beachte, dass das ein String ist, keine Zahl!
Wenn du daraus eine Zahl machen willst:
var foo = document.frm.hoehe.value * 1;
oder mittels http://de.selfhtml.org/javascript/objekte/unabhaengig.htm#parse_float@title=parseFloat/http://de.selfhtml.org/javascript/objekte/unabhaengig.htm#parse_int@title=parseInt umwandeln.
<script language="JavaScript">
Falsch.
Richtig: <script type="text/javascript">
[http://de.selfhtml.org/javascript/intro.htm#javascriptbereiche@title=SELFHTML]
<!--
//-->
Die Auskommentierung ist völlig überflüssig.
Live long and prosper,
Gunnar
Hallo :)
Beachte, dass das ein String ist, keine Zahl!
Wenn du daraus eine Zahl machen willst:
var foo = document.frm.hoehe.value * 1;
oder mittels http://de.selfhtml.org/javascript/objekte/unabhaengig.htm#parse_float@title=parseFloat/http://de.selfhtml.org/javascript/objekte/unabhaengig.htm#parse_int@title=parseInt umwandeln.
Danke erstmal!
<script language="JavaScript">
Falsch.
Richtig:
<script type="text/javascript">
[http://de.selfhtml.org/javascript/intro.htm#javascriptbereiche@title=SELFHTML]
Hab ich schon gehört, aber da wir es so gelernt haben und unsere Lehrerin es so gerne hätte, lass ich es lieber dabei.
Es funktioniert leider immer noch nicht.
LG
Mahlzeit,
<script language="JavaScript">
Falsch.
Richtig:
<script type="text/javascript">
[http://de.selfhtml.org/javascript/intro.htm#javascriptbereiche@title=SELFHTML]Hab ich schon gehört, aber da wir es so gelernt haben und unsere Lehrerin es so gerne hätte, lass ich es lieber dabei.
Mimimi ... so eine Lehrerin kannst Du wirklich mal getrost in der Pfeife rauchen. Ist wirklich unglaublich, was an Deutschlands Schulen so alles unterrichten darf ... :-(
MfG,
EKKi
Moin!
Hab ich schon gehört, aber da wir es so gelernt haben und unsere Lehrerin es so gerne hätte, lass ich es lieber dabei.
Mimimi ... so eine Lehrerin kannst Du wirklich mal getrost in der Pfeife rauchen. Ist wirklich unglaublich, was an Deutschlands Schulen so alles unterrichten darf ... :-(
Das ist in etwa so, als würde in Politik jetzt noch gelehrt, daß Helmut Kohl regierender Bundeskanzler sei. :(
Cü,
Kai
@@Kai345:
Das ist in etwa so, als würde in Politik jetzt noch gelehrt, daß Helmut Kohl regierender Bundeskanzler sei. :(
In etwa. Nur, dass Helmut Kohl wirklich mal Bundeskanzler war; während '<script language="JavaScript">
' noch nie richtig war. [</archiv/2007/10/t160609/#m1044978>]
Live long and prosper,
Gunnar
PS: </archiv/2008/1/t164832/#m1074710> ff.
Moin!
Das ist in etwa so, als würde in Politik jetzt noch gelehrt, daß Helmut Kohl regierender Bundeskanzler sei. :(
In etwa. Nur, dass Helmut Kohl wirklich mal Bundeskanzler war; während '
<script language="JavaScript">
' noch nie richtig war. [</archiv/2007/10/t160609/#m1044978>]
.. aber dennoch allgemein üblich.
Ich rege mich nur immer wieder tierisch darüber auf [1], daß gerade im Bereich Computer, an dem in der heutigen und kommenden Zeit ja nun wirklich niemand mehr vorbei kommen wird, das Lehrmaterial wie auch der Wissenstand der Lehrer vielfach immer noch auf Steinzeit-Niveau stehengeblieben ist und noch genau so weitergegeben wird.
Cü,
Kai
[1] Ich weiß, sollte ich nicht, da ich sowohl altersmäßig wie auch von meinem Lebenswandel in der Herzinfarkt-Risikogruppe ziemlich vorne stehen dürfte
Hallo, mein Code sieht jetzt so aus:
<html>
<head>
<title>Turm 2</title>
</head>
<body>
<div align="center">
<font face="Arial">
<h1>Die höchsten Türme der Welt</h1>
<form name="frm">
Höhe: <input name="hoehe" type="text" size="30" maxlength="30">
<input type="button" value="Berechne" onClick="rechnung()">
</form>
<script language="JavaScript">
<!--
function rechnung()
{
if (document.frm.hoehe.value == 0)
{
alert ("Ungültige Zahl.");
}
else
{
var h, v, t, g;
g=10;
document.write ("<table rules=all width=150>");
for (h=10; h<=parseInt(document.frm.hoehe.value); h=(h+10))
{
t=Math.sqrt((0,5*g)/h);
t=t.toFixed(2);
v=g*t;
v=v.toFixed(2);
document.write ("<tr><td bgcolor=#BFBFBF><b>"+h+" m</td><td>"+v+"</td><td>"+t+"</td></tr>");
}
document.write("</table>")
}
}
//-->
</script>
</body>
</html>
LG
Ok, inzwischen funktioniert es. Aber jetzt möchte ich das Programm so umschreiben, dass eben bei einer Eingabe von 0 und bei einer Eingabe von größer 550 eine Fehlermeldung erscheint.
Dazu habe ich jetzt folgendes geschrieben:
<html>
<head>
<title>Turm 2</title>
</head>
<body>
<div align="center">
<font face="Arial">
<h1>Die höchsten Türme der Welt</h1>
<form name="frm">
Höhe: <input name="hoehe" type="text" size="30" maxlength="30">
<input type="button" value="Berechne" onClick="rechnung()">
</form>
<script language="JavaScript">
<!--
var h2=parseInt(document.frm.hoehe.value)
function rechnung()
{
if (h2==0)
{
alert ("Ungültige Zahl.");
}
else
{
var h, h2, v, t, g;
g=10;
document.write ("<table rules=all width=150>");
for (h=10; h<=h2; h=(h+10))
{
t=Math.sqrt((0,5*g)/h);
t=t.toFixed(2);
v=g*t;
v=v.toFixed(2);
document.write ("<tr><td bgcolor=#BFBFBF><b>"+h+" m</td><td>"+v+"</td><td>"+t+"</td></tr>");
}
document.write("</table>")
}
}
//-->
</script>
</body>
</html>
Hallo,
> <script language="JavaScript">
> <!--
> var h2=parseInt(document.frm.hoehe.value)
> function rechnung()
> {
> if (h2==0)
> {
> alert ("Ungültige Zahl.");
> }
> else
> {
alert ("eingabe:[" +document.frm.hoehe.value + "], h2:" + h2 );
> var h, h2, v, t, g;
ich würde ein zusätzliches alert einbauen, damit du erkennen kannst, womit die Rechnung beginnt.
noch ein paar Nebensächlichkeiten: dein <font> und <div> ist nicht geschlossen?
was soll denn so berechnet werden? h,v,t ( Tabellenbeschriftung wäre gut)
ein Stein fällt vom Hochhaus, welche Geschwindigkeit hat er nach wieviel Metern o.s.ä?
komisch, bei mir fällt der Stein immer langsamer..., aber trotzdem in kleiner werdenden Zeitintervallen?
Gruß plan_B
Hallo,
ja die Höhe wird ja eingegeben, von daher soll Zeit und Geschwindigkeit berechnet werden.
Aber wie mach ich das denn jetzt mit dem Alarm bei einer Eingabe von 0 bzw. >550 ?
Den div und font tag müssen wir nicht schließen. kann aber gut sein, dass es falsch ist, unser lehrer hat glaub ich oft keine ahnung...
LG
Hallo,
Aber wie mach ich das denn jetzt mit dem Alarm bei einer Eingabe von 0 bzw. >550 ?
momentan läuft es ja noch nicht mal bei gültiger Eingabe! Deswegen machte ich den Vorschlag mit dem zusätzlichen alert().
Hast du das mal ausprobiert?
Da warte ich erstmal ab, welche Lösung du anbietest.
Diese Funktion http://de.selfhtml.org/javascript/objekte/unabhaengig.htm#is_nan@title=javascript/objekte/unabhaengig.htm#is_nan könnte dir nützlich sein.
Den div und font tag müssen wir nicht schließen. kann aber gut sein, dass es falsch ist, unser lehrer hat glaub ich oft keine ahnung...
in ein paar Jahren wirst du nicht mehr sagen können, das hat mein Lehrer nicht besser gewusst. Nutze deine eigenen Fähigkeiten ...
LG
Gruß plan_B
Hallo,
also habe es jetzt so versucht:
<html>
<head>
<title>Turm 2</title>
</head>
<body>
<div align="center">
<font face="Arial">
<h1>Die höchsten Türme der Welt</h1>
<form name="frm">
Höhe: <input name="hoehe" type="text" size="30" maxlength="30">
<input type="button" value="Berechne" onClick="rechnung()">
</form>
<script language="JavaScript">
<!--
function rechnung()
{
if (document.frm.hoehe.value==0)
{
alert ("Ungültige Zahl.");
}
else
{
if (document.frm.hoehe.value>550)
{
alert ("Diese Zahl ist zu groß. Geben Sie bitte eine kleinere Zahl ein.");
}
else
{
var h, h2, v, t, g;
g=10;
h2=parseInt(document.frm.hoehe.value);
document.write ("<table rules=all width=150><tr><td><b>Höhe</b></td><td><b>Geschwindigkeit</b></td><td><b>Zeit</b></td>");
for (h=1; h<=h2; h=(h+1))
{
t=Math.sqrt((0,5*g)/h);
t=t.toFixed(2);
v=g*t;
v=v.toFixed(2);
document.write ("<tr><td bgcolor=#BFBFBF><b>"+h+" m</td><td>"+v+"</td><td>"+t+"</td></tr>");
}
document.write("</table>");
}
}
}
//-->
</script>
</body>
</html>
Die Alerts funktionieren auch, nur die Rechnung dann leider nicht :(
Es funktioniert jetzt alles, danke!!!
@@Sarah:
Es funktioniert jetzt alles, danke!!!
Na Glückwunsch! Dann kannst du dich ja jetzt an die Beseitigung der Fehler machen, die ich schon gleich zu Anfang angemerkt hatte.
Live long and prosper,
Gunnar
Hallo,
Es funktioniert jetzt alles, danke!!!
wenn du auch rausbekommst, dass ein Stein nach einem Fall von einem 180 m hohen Gebäude mit 60 m/s am Boden auftrift, gratuliere ich dir auch. :-)
Gruß plan_B
Mahlzeit,
Den div und font tag müssen wir nicht schließen.
http://de.selfhtml.org/html/text/bereiche.htm#block@title=Doch, http://de.selfhtml.org/html/text/schrift.htm#art_groesse_farbe@title=müsst Ihr ... darüber hinaus ist <font> veraltet und sollte durch <http://de.selfhtml.org/css/eigenschaften/schrift.htm#font@title=entsprechende CSS-Anweisungen> ersetzt werden.
kann aber gut sein, dass es falsch ist, unser lehrer hat glaub ich oft keine ahnung...
Ja, ist es und ja, Euer Lehrer scheint kurz nach HTML1.0 stehengeblieben zu sein - nutzt Ihr noch Netscape 3.01Gold im Unterricht?
Weise ihn (bzw. sie - ich meinte in einem Deiner frühere Beiträge etwas von "Lehrerin" gelesen zu haben) mal dezent auf aktuelle Web-Standards (HTML4.01, XHTML, CSS2.0) hin.
MfG,
EKKi
Mahlzeit,
Hallo, mein Code sieht jetzt so aus:
Hm, ich behaupte mal, dass Dein Code - entgegen der Überschrift - eben kein XHTML ist. Dein <font>-Tag ist nicht geschlossen, Deine <input>-Tags auch nicht und was Dein Javascript ins Dokument schreibt, ist auch kein XHTML.
MfG,
EKKi
Hallo,
ich hab niemald behauptet es sei XHTML...
die Überschrift hat irgendjemand anders geändert..
LG
Mahlzeit,
ich hab niemald behauptet es sei XHTML...
die Überschrift hat irgendjemand anders geändert..
Ja, hab's jetzt auch gerafft :-) ... entschuldige.
MfG,
EKKi
Hallo,
Hm, ich behaupte mal, dass Dein Code - entgegen der Überschrift - eben kein XHTML ist. Dein <font>-Tag ist nicht geschlossen, Deine <input>-Tags auch nicht und was Dein Javascript ins Dokument schreibt, ist auch kein XHTML.
diese XHTML-Geschichte hat wie man sieht Kai345 eingeführt ( ein Bug in seinem Antwortscript)
<input> ist ein leeres Element, gibt also kein Endtag.
Gruß plan_B
Mahlzeit,
diese XHTML-Geschichte hat wie man sieht Kai345 eingeführt ( ein Bug in seinem Antwortscript)
Oh. In der Tat. Ich nehme alles zurück behaupte das Gegenteil! :-)
<input> ist ein leeres Element, gibt also kein Endtag.
Naja, fast alles ... in XHTML (wenn es denn XHTML wäre) gibt es keine leeren Elemente, <input>-Tags müssen auch dort geschlossen werden. ;-)
MfG,
EKKi
@@EKKi:
Oh. In der Tat. Ich nehme alles zurück behaupte das Gegenteil! :-) […]
Naja, fast alles ... in XHTML (wenn es denn XHTML wäre) gibt es keine leeren Elemente,
Auch das solltest du zurücknehmen und das Gegenteil behaupten.
Live long and prosper,
Gunnar
Mahlzeit,
@@EKKi:
Oh. In der Tat. Ich nehme alles zurück behaupte das Gegenteil! :-) […]
Naja, fast alles ... in XHTML (wenn es denn XHTML wäre) gibt es keine leeren Elemente,Auch das solltest du zurücknehmen und das Gegenteil behaupten.
Ich formuliere es um: in XHTML gibt es zwar leere Elemente, diese müssen aber trotzdem geschlossenen werden (was die von mir bemängelten Elementen eben nicht waren).
So in Ordnung? :-)
MfG,
EKKi
@@Sarah:
Richtig:
<script type="text/javascript">
[http://de.selfhtml.org/javascript/intro.htm#javascriptbereiche@title=SELFHTML]Hab ich schon gehört, aber da wir es so gelernt haben und unsere Lehrerin es so gerne hätte, lass ich es lieber dabei.
Dann solltest du deine Lehrerin höflich bitten, sie möge Euch nichts Falsches lehren. Du kannst auf die HTML-Spezifikation [HTML401 §18.2.1] verweisen. Sollte sie nicht wissen, was „REQUIRED“ bedeutet, lässt sich das schnell in dict.leo.org nachschlagen. Außerdem steht’s ja da: „Autoren müssen einen Wert für dieses Attribut ['type'] angeben.“
In (X)HTML Transitional wäre auch '<script type="text/javascript" language="JavaScript">
' richtig.
Es funktioniert leider immer noch nicht.
Wie sieht der Code jetzt aus? Link zur Seite?
Live long and prosper,
Gunnar