Datalist dient zur Vorschlag von Werten, ohne Werte zu erzwingen 

Avatar of Chris Coyier
Chris Coyier am

DigitalOcean bietet Cloud-Produkte für jede Phase Ihrer Reise. Starten Sie mit 200 $ kostenlosem Guthaben!

Hatten Sie schon einmal ein Formular, das kurze, beliebige Texteingaben akzeptieren musste? Wie einen Namen oder so etwas. Genau dafür ist <input type="text"> da. Es gibt viele verschiedene Eingabetypen (und Modi!), und die Wahl des richtigen ist eine gute Idee.

Aber diese kleine Geschichte handelt von etwas anderem und gilt für jeden von ihnen.

Was ist, wenn der Text beliebig sein muss (wie „Wie ist deine Lieblingsfarbe?“) So dass die Leute tippen können, was sie wollen, aber Sie auch hilfreich sein möchten. Vielleicht gibt es eine Handvoll wirklich beliebter Antworten. Wäre es nicht schön, wenn die Leute einfach eine auswählen könnten? Kein <select>, sondern eine Mischung aus einem Eingabefeld und einer Dropdown-Liste. Aber warten Sie mal. Erstellen Sie noch keine eigenen benutzerdefinierten React-Elemente.

Dafür ist <datalist> da. Ich habe es neulich erfolgreich benutzt, also dachte ich, ich schreibe einen Blogbeitrag darüber, denn Bloggen ist cool.

Hier sind die Grundlagen

Sehen Sie den Pen
Grundlegende Datalist-Nutzung
von Chris Coyier (@chriscoyier)
auf CodePen.

Der Anwendungsfall, mit dem ich mich beschäftigte, benötigte

  1. Ein <input type="text"> für einen Benutzernamen
  2. Ein <input type="text"> für einen „Flag“ (einen beliebigen String, der eine Berechtigung darstellt)

Ich würde wahrscheinlich keine <datalist> für jeden Benutzernamen in einer Datenbank verwenden. Ich glaube nicht, dass es eine Grenze gibt, aber da dies in Ihrem HTML steht, würde ich sagen, dass es am besten bei vielleicht 100 Optionen oder weniger funktioniert.

Aber für die zweite Option hatten wir zu der Zeit nur etwa 3-4 eindeutige Flags, mit denen wir es zu tun hatten, so dass eine Datalist dafür perfekt war. Sie können tippen, was Sie wollen, aber diese UI hilft Ihnen, die gängigsten Optionen auszuwählen. So verdammt nützlich. Vielleicht könnte dies für etwas wie eine Geschlechtseingabe nützlich sein, bei der es eine Liste von Optionen gibt, die Sie auswählen können, aber sie erzwingt nicht, dass Sie tatsächlich eine davon auswählen.

Noch weniger bekannt als die Tatsache, dass <datalist> existiert? Die Tatsache, dass es für alle Arten von Eingaben funktioniert, nicht nur für text, sondern auch für date, range und sogar color.