Simon Schuller: Html in Java

Hallo, Man kann ja html in Java verwenden:

<!doctype html> 
<html lang="de">
<head>
<title>JavaScript in Aktion</title>
<meta charset="utf-8">
</head>
<script type="text/javascript">
function zylinder() {
    var radius, hoehe;

    radius = parseFloat(document.getElementById("r").value);
    hoehe = parseFloat(document.getElementById("h").value);

    var volumen = Math.pow(radius, 2) * Math.PI * hoehe;
    volumen = volumen.toFixed(2);
    document.getElementById("v").innerHTML = volumen;
}
</script>
<body>
<h1>Zylinder</h1>
Radius: <input id="r" size="3" onkeyup="zylinder()"></input><br>
Höhe: <input id="h" size="3" onkeyup="zylinder()"></input><br>
Volumen: <span id="v"></span>
</script>
</body>
</html>

Ist das eine elegante Lösung oder gäbe es eine einfachere? LG

  1. Hallo,

    Man kann ja html in Java verwenden:

    Abgesehen davon, dass du nicht Java, sondern Javascript meinst: Es ist doch andersrum⁉️

    Ist das eine elegante Lösung oder gäbe es eine einfachere?

    Für welches Problem?

    Gruß
    Kalk

  2. @@Simon Schuller

    Man kann ja html in Java verwenden:

    Zunächst einmal: was Cheatah sagte.

    </head>
    <script type="text/javascript"></script>
    <body>
    

    Mit </head> ist der head zuende, unmittlebar danach fängt der body an – das script ist bereits im body. Das darauffolgende <body>-Start-Tag ist falsch.

    Du wolltest vermutlich das script im head platzieren.

    Radius: <input id="r" size="3" onkeyup="zylinder()"></input><br>
    Höhe: <input id="h" size="3" onkeyup="zylinder()"></input><br>
    

    Ist das eine elegante Lösung

    Das ist weder elegant noch eine Lösung, sondern ein Problem: Die Eingabefelder haben keine Beschriftung, müssen aber unbedingt eine haben.

    Das keyup-Event ist falsch. Es gibt andere Eingabemöglichkeiten als per Tastatur; bei denen soll auch die Berechnung angestoßen werden.

    Du möchtest stattdessen auf input oder change reagieren.

    Volumen: <span id="v"></span>
    </script>
    

    Zu Ausgabe gibt es in HTML ein output-Element (was ebenfalls ein label haben sollte).

    Das </script>-Tag ist da falsch.

    LLAP 🖖

    --
    “When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory