Hallo beisammen und auch Sempervivum (schon jetzt ein Dank für Deine Mühe),
bin heute mal wieder am Rechner und habe nochmal versucht alles irgendwie zusammen zu bringen. Es hat nicht sollen sein.
Daher werde ich mich mal als totalen Trottel outen und meinen hilflosen Versuch hier posten. Die Grundlagen des ganzen Versuches ist von der Javascript DVD herunter. Erst wurde da das Formular erstellt (mit Tieren); danach wurde mit Autos gezeigt wie das Objektorientierte Programmieren funktioniert.
Grundsätzlich habe ich die Vorgehensweise verstanden; - es hapert halt doch an der Umsetzung beides zusammen zu bringen.
Ich weiß, dass der Code voller Fehler ist, aber ich will hier keinen Schönheitspreis gewinnen.
Zuerst mein Ergebnis im Chrome Browser:
html-seminar.de/woltlab/attachment/1201/
Die Idee ist:
Eingabe der Werte (Hersteller, Farbe , max. Geschwindigkeit) und Ausgabe am Bildschirm (siehe auch oben Kommentare).
Allerdings möchte ich dann mit den Werten weiter arbeiten. Dazwischen will ich dann, auch über Formular die Beschleunigung oder das Bremsen abfragen. So weit bin ich noch nicht mal gekommen; - deswegen habe ich auch nur die Daten fix im Programm gelassen.
Hier der Quellcode:
<!DOCTYPE html>
<html>
<head>
<title>Javascript Beispiel mit Objektorientierter Programmierung</title>
<meta charset="utf-8">
</head>
<body>
<form name="Autodaten" action="" method="get" enctype="text/plain">
Hersteller: <input id="autohersteller" type="text" name="autoerzeuger" value="" size="20" maxlength="50" onkeyup="" /><br>
Farbe: <input id="farbevonauto" type="text" name="" value="" size="5" maxlength="10" onkeyup=""/><br>
Max. Geschwindigkeit: <input id="geschw" type="text" name="" value="" size="5" maxlength="10" onkeyup=""/><br>
<input type="submit" name="" value="Sichern" />
</form>
<script>
var autoerzeuger = document.getElementById ('autohersteller').value;
document.write
var autofarbe = document.getElementById ("farbevonauto").value;
var maximalGeschwindig = document.getElementById ("geschw").value;
document.write ( autoerzeuger + " " + autofarbe + " mit Höchstgeschwindigkeit: " + maximalGeschwindig + " sind im Formular angegeben worden.");
function anzeige()
{
var autoerzeuger = document.getElementById ("autohersteller").value;
var autofarbe = document.getElementById ("farbevonauto").value;
var maximalGeschwindig = document.getElementById ("geschw").value;
document.getElementById ("anzeige").innerHTML = autoerzeuger + " " + autofarbe + " mit Höchstgeschwindigkeit: " + maximalGeschwindig + " sind im Formular angegeben worden.";
}
// Objektbauplan über function
function Auto (autoerzeuger, autofarbe, maximalGeschwindig)
{
// Eigenschaften
this.farbe = autofarbe;
this.hersteller = autoerzeuger;
this.stillstand = 0;
this.speedNow = 0;
this.maxSpeed = maximalGeschwindig;
// Methode die in der naechtsten Funtkion erlaeutert wird
this.beschleunigen_um = beschleunigen_um;
this.bremsen_um = bremsen_um
}
//Hier nun die Methode
function beschleunigen_um (kmh)
{
this.speedNow +=kmh;
document.write('<br>Beschleunigt um: ');
document.write( kmh);
document.write(' km/h auf km/h: ');
document.write(this.speedNow);
if (this.speedNow > this.maxSpeed)
{
document.write('<p>' + this.speedNow);
document.write (' km/h geht Nicht - daher wird gedrosselt auf ' + this.maxSpeed + ' km/h!<br>');
this.speedNow = this.maxSpeed;
}
}
function bremsen_um (kmh)
{
this.speedNow -= kmh;
document.write('<br>Abgebremst um: ');
document.write( kmh);
document.write(' km/h auf km/h: ');
document.write(this.speedNow);
if (this.speedNow < this.stillstand)
{
document.write('<p> Geht nicht - Das Auto steht jetzt!<br>');
this.speedNow = this.stillstand;
}
}
//Eingabe der Autodaten
var erst = document.getElementById ("autohersteller").innerHTML
document.write (erst);
var meinAuto = new Auto (document.getElementById ("autohersteller").innerHTML.value,document.getElementById ("farbevonauto").innerHTML.value, document.getElementById ("geschw").innerHTML.value);
document.write (meinAuto.farbe);
document.write (meinAuto.hersteller);
document.write ('<p>Start im Stehen:')
meinAuto.beschleunigen_um(120);
meinAuto.beschleunigen_um(150);
meinAuto.beschleunigen_um(70);
meinAuto.bremsen_um(150);
meinAuto.bremsen_um(400);
</script>
</body>
</html>
Alles anzeigen
Den Hinweis mit event (siehe Kommentare von Sempervivum) habe ich hier zwar hoch und runter ausprobiert, bin aber bei der Übergabe nicht weiter gekommen.
Noch eine Bitte:
Das "document.write" bitte ich mir als Anfänger abzusehen. Ich will es eigentlich nur zur Kontrollausgabe verwenden. Der Hinweis von Sempervivum ist sicherlich berechtigt und würde auf jeden Fall mit innerHTML umgesetzt, wenn die Programmierung grundsätzlich stehen würde.
Ich hoffe, dass ich mein Problem klar erläutert habe. Nach 4 Stunden am Bildschirm mit immer dem gleichen "Sch..." wird man ganz gagaga.
Danke schon mal im Voraus.