Ich bin gespannt auf den ursprünglichen Zweck des <input type="hidden">
Tags.
Heutzutage wird es oft zusammen mit JavaScript verwendet, um darin gespeicherte Variablen zu speichern, die an den Server gesendet werden, und solche Dinge.
- HTML 2.0 wurde im November 1995 veröffentlicht und enthält bereits die Spezifikation für den Eingabetyp = "versteckt".
- JavaScript wurde im März 1996 veröffentlicht
Daher <input type="hidden">
existierte das vor JavaScript, also was war sein ursprünglicher Zweck? Ich kann mir nur vorstellen, einen Wert vom Server an den Client zu senden, der (unverändert) zurückgesendet wird, um eine Art Status beizubehalten. Oder habe ich in der Geschichte etwas falsch gemacht und <input type="hidden">
sollte immer zusammen mit JavaScript verwendet werden?
Wenn möglich, geben Sie bitte auch Referenzen in Ihren Antworten an.
javascript
html
history
Uooo
quelle
quelle
Antworten:
Genau. Tatsächlich wird es heute noch für diesen Zweck verwendet, da HTTP, wie wir es heute kennen, zumindest im Grunde genommen immer noch ein zustandsloses Protokoll ist.
Dieser Anwendungsfall wurde tatsächlich zuerst in HTML 3.2 beschrieben (ich bin überrascht, dass HTML 2.0 keine solche Beschreibung enthielt):
Erwähnenswert ist, dass HTML 3.2 erst nach der ersten Veröffentlichung von JavaScript zu einer W3C-Empfehlung wurde. Man kann jedoch davon ausgehen, dass versteckte Felder so gut wie immer denselben Zweck erfüllt haben.
quelle
Ich werde hier ein einfaches Beispiel für die serverseitige reale Welt bereitstellen. Sagen wir, wenn die Datensätze in einer Schleife ausgeführt werden und jeder Datensatz ein Formular mit einer Löschtaste hat und Sie einen bestimmten Datensatz löschen müssen. Hier kommt also das
hidden
Feld in Aktion, sonst haben Sie gewonnen. ' In diesem Fall wird die Referenz des zu löschenden Datensatzes nicht abgerufenid
Beispielsweise
quelle
Kurz gesagt, der ursprüngliche Zweck bestand darin, ein Feld zu erstellen, das zusammen mit dem Formular eingereicht wird. Manchmal mussten einige Informationen in einem versteckten Feld gespeichert werden (z. B. die ID des Benutzers) und mit dem Formular "Senden" gesendet werden.
Aus der HTML-Spezifikation vom 22. September 1995
quelle
original purpose was to make a field which will be submitted *after* form's submit
mehrdeutig. Es kann interpretiert werden als: 'Nachdem das Formular seine Daten veröffentlicht hat, dann das versteckte Feld (an einen mysteriösen Ort) gesendet." Daher mein Kommentar oben.Die Werte von Formularelementen, einschließlich type = 'hidden', werden beim Versenden des Formulars an den Server gesendet. input type = "versteckte" Werte sind auf der Seite nicht sichtbar. Das Verwalten von Benutzer-IDs in ausgeblendeten Feldern ist beispielsweise eine der vielen Verwendungsmöglichkeiten.
SO verwendet ein verstecktes Feld für den Upvote-Klick.
Mit diesem Wert kann das serverseitige Skript die Upvote speichern.
quelle
Grundsätzlich sind versteckte Felder nützlicher und bieten Vorteile bei der Verwendung mit mehrstufigen Formularen. Wir können ausgeblendete Felder verwenden, um Informationen zu einem Schritt mithilfe von ausgeblendeten an den nächsten Schritt weiterzugeben und sie bis zum Endschritt weiterzuleiten.
Die Fälschung von standortübergreifenden Anfragen ist eine sehr häufige Sicherheitslücke auf der Website. Das Erfordernis eines geheimen, benutzerspezifischen Tokens in allen Formularübermittlungen verhindert CSRF-Angriffe, da Angriffsseiten nicht erraten können, was das richtige Token ist, und alle Formularübermittlungen, die sie im Namen des Benutzers ausführen, schlagen immer fehl.
Wenn Sie in einem mehrseitigen Formular speichern müssen, in welchem Schritt sich der Benutzer gerade befindet, verwenden Sie ausgeblendete Eingabefelder. Der Benutzer muss diese Informationen nicht sehen, also verstecken Sie sie in einem versteckten Eingabefeld.
Allgemeine Regel: Verwenden Sie das Feld, um alles zu speichern, was der Benutzer nicht sehen muss, das Sie jedoch beim Senden des Formulars an den Server senden möchten.
quelle