Hallo,
Die Antwort lautet: Ein button-Element repräsentiert einen Knopf zum drücken, ein input-Element ein Element für eine Benutzereingabe.
das ist richtig, also ist input die Obermenge, denn "einen Knopf drücken" ist ja schließlich auch eine Benutzereingabe. Daher finde ich es vom Standpunkt der Semantik schon falsch, dass man "damals" Listen und mehrzeilige Eingabefelder als eigenständige Elemente definiert hat und alle anderen Form Controls als Varianten des Basiselements input.
Okay, ich sehe wohl das formale syntaktische Problem, dass die beiden erstgenannten einen Inhalt haben, die anderen nicht (z.B. einzeiliges Eingabefeld, Checkbox, Radiobutton, File-Upload). Aber schon das textarea-Element ist irgendwie ein Hybrid. Es hat eine value-Eigenschaft, übermittelt seinen Wert auch genauso wie die anderen Controls, hat aber im Markup kein value-Attribut, obwohl theoretisch nichts gegen <input type="multiline" value="Enter\nmultiple\nlines\nof\ntext\nhere"> spräche.
Außerdem hat button gegenüber input Vorteile, wie ich weiter oben schrieb.
Ja. Trotzdem würde ich überall da, wo ich diese erweiterten Möglichkeiten nicht brauche, ein <input type="submit"> vorziehen, weil ich es einfach konsequenter finde. Beim Geschirr bevorzugt man ja auch die Kaffeetassen im gleichen Dekor wie die Kuchenteller, obwohl sie eine andere Funktion haben.
Ciao,
Martin
Ich stehe eigentlich gern früh auf.
Außer morgens.
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(