Dieses Javascript:
<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.");
Alles anzeigen
wird sofort beim Laden der Seite aufgerufen. Zu dem Zeitpunkt sind alle Eingabefelder noch leer. Um eine Aktion auszulösen, wenn in einem Eingabefeld etwas eingegeben wird, kommst Du um Eventhandler nicht herum.
Und dieses:
document.getElementById ("autohersteller").innerHTML.value
kann nicht funktionieren; entweder value (bei Eingabefeldern) oder innerHTML (z. B. bei span oder div).
Ich habe mal dieses ausgearbeitet:
<!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>
<div id="anzeige"></div>
<script>
var dasAuto = null;
function eingabenUebernehmen() {
var hersteller = autohersteller.value;
var farbe = farbevonauto.value;
var geschwindigkeit = geschw.value;
if (hersteller != "" && farbe != "" && geschwindigkeit != "") {
dasAuto = new Auto(hersteller, farbe, geschwindigkeit)
dasAuto.anzeigen("anzeige");
}
}
autohersteller.addEventListener("change", eingabenUebernehmen);
farbevonauto.addEventListener("change", eingabenUebernehmen);
geschw.addEventListener("change", eingabenUebernehmen);
document.querySelector("form[name='Autodaten']").addEventListener("submit", function(e) {
e.preventDefault();
});
// Objektbauplan über function
function Auto (autoerzeuger, autofarbe, maximalGeschwindig)
{
// Eigenschaften
this.farbe = autofarbe;
this.hersteller = autoerzeuger;
this.stillstand = 0;
this.speedNow = 0;
this.maxSpeed = maximalGeschwindig;
// Methoden
this.beschleunigen_um = function (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;
}
}
this.bremsen_um = function (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;
}
}
this.anzeigen = function(id)
{
var anzei = document.getElementById(id);
anzei.innerHTML = 'Hersteller: ' + this.hersteller + " Farbe: " + this.farbe + ' Höchstgeschwindigkeit: ' + this.maxSpeed;
}
}
</script>
</body>
</html>
Alles anzeigen
Damit kannst Du ja mal versuchen, zu beschleunigen und zu bremsen.