Raketenwilli: Verhalten von on...-Handlern in Forms

Beitrag lesen

problematische Seite

Hallo alle,

beim Nachbearbeiten der Wikiänderungen von heha bin ich auf ein Kuriosum gestoßen. Zumindest für mich war es eins.

<h1>Beispiel: math.cbrt (Kubikwurzel)</h1>
<main>
	<p>Bitte geben Sie eine Zahl ein und drücken Sie auf den Button.</p>
	<form name="Test">
		<input type="text" value="9" name="Eingabe">
		<input type="button" value="=" onclick="Berechnen(Eingabe)"> </form>
	<p id="Ausgabe"></p>
</main>

onclick="Berechnen(Eingabe)"

WTF? Eingabe ist keine id, sondern ein Name. Es ist damit nicht unter window.Eingabe zu finden (zur Kontrolle ausprobiert). Unter document.Eingabe auch nicht. document.Test.Eingabe ist was anderes, das funktioniert, und das ist auch zu erwarten.

Aber einfach nur Eingabe⁉️

Naja. Der Typ mit dem Arbeitskittel (es gibt davon viele in jedem Computer), der die Aufgaben des Programmierers oder Bedieners bekanntlich erledigt, wuselt gerade im Formular und direkt neben ihm glänzt der Input mit dem Name „Eingabe“. Das dessen Value gemeint ist wird wohl mangels einer anderen Bestimmung als Default angenommen.

Wir haben also:

document.forms[#n]. elements['Eingabe'] .value

oder:

Kontext . Adresse . Vermutung

Ich würde das (schon wegen der Verschiebbarkeit, also Wiederverwendungsfähigkeit und Verständlichkeit des Codes) weder so machen noch so vorsehen - aber wenn man an etwas wie „relative Pfade“ denkt, ist es logisch. Denn ohne solche relativen Angaben müsste man eigentlich stets vom Browser über das Fenster und Dokument, Formular zum Inputfeld (oder via ID, was hinsichtlich der Erfordernis einer eineindeutigen Vergabe eigene Probleme aufwerfen kann) adressieren.

Sagen wir, es dient der Zugänglichkeit. Was dem einem „das Hirn wegknallt“ macht es anderen einfach. Aber nur bis es ihm oder ihr „das Hirn wegknallt“