Datalist til autofuldførelse
Foreslå inputværdier med datalist-elementet
Datalist til autofuldførelse er en gratis HTML Academy-lektion på CoddyKit. Dette er lektion 4 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i HTML Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. HTML Academy-kurset indeholder 4 lektioner i alt.
Hvad er datalist?
Elementet <datalist> indeholder en liste med foruddefinerede forslag til et <input>:
<label for="browser">Favorite browser</label>
<input list="browsers" id="browser" name="browser">
<datalist id="browsers">
<option value="Chrome">
<option value="Firefox">
<option value="Safari">
<option value="Edge">
</datalist>
<!-- list attribute links input to datalist by id -->
<!-- User can type freely OR select a suggestion -->datalist kontra select
Den vigtigste forskel mellem <datalist> og <select>:
- datalist — fri tekst + forslag, så brugeren kan skrive hvad som helst
- select — begrænset valg, så brugeren skal vælge fra listen
Brug datalist, når du vil foreslå værdier uden at begrænse inputtet.
Knytning af datalist til input
Attributten list på <input> skal svare til attributten id på <datalist>:
<input type="text" list="fruits" name="fruit">
<datalist id="fruits">
<option value="Apple">
<option value="Banana">
<option value="Cherry">
</datalist>datalist med forskellige inputtyper
<datalist> fungerer med mange inputtyper:
<!-- text + datalist: type-ahead suggestions -->
<input type="text" list="countries">
<!-- range + datalist: tick marks -->
<input type="range" min="0" max="100" step="10" list="marks">
<datalist id="marks">
<option value="0"> <option value="25">
<option value="50"> <option value="75"> <option value="100">
</datalist>
<!-- color + datalist: color palette shortcuts -->
<input type="color" list="brand-colors">
<datalist id="brand-colors">
<option value="#0070f3">
<option value="#e86f00">
</datalist>option-label i datalist
Valgmuligheder i datalist kan have en synlig etiket og en værdi, der sendes:
<datalist id="countries">
<option value="US">United States</option>
<option value="GB">United Kingdom</option>
<option value="DE">Germany</option>
</datalist>
<!-- In some browsers, label shows in dropdown
value is submitted when the option is selected -->Filtrering af forslag
Browseren filtrerer forslagene, mens brugeren skriver:
- Matchningsalgoritmen varierer fra browser til browser
- Nogle matcher fra begyndelsen, mens andre matcher hvor som helst i tekststrengen
- Du kan ikke styre browserens filtreringsadfærd
- Til brugerdefineret filtrering skal du opbygge en brugerdefineret autofuldførelseskomponent med ARIA
Dynamisk datalist med JavaScript
Opdatér datalists valgmuligheder dynamisk:
<input type="text" list="suggestions" id="search-input">
<datalist id="suggestions"></datalist>
<script>
document.getElementById('search-input').addEventListener('input', async function() {
const query = this.value;
const res = await fetch(`/api/search?q=${query}`);
const items = await res.json();
const dl = document.getElementById('suggestions');
dl.innerHTML = items.map(item =>
`<option value="${item.name}">`
).join('');
});
</script>Tilgængelighed for datalist
Overvejelser om tilgængelighed for datalist:
- Skærmlæsere annoncerer forslagene som en listeboks
- Brugere kan navigere i forslagene med piletasterne
- Inputtet accepterer stadig fri tekst — sørg for, at valideringen håndterer dette
Bemærkninger om browserunderstøttelse
Browserunderstøttelsen af datalist er god, men har enkelte særheder:
- Chrome, Edge, Firefox: fuld understøttelse
- Safari: understøttet fra og med Safari 12.1+
- Mobilbrowsere: De fleste viser forslag, men brugergrænsefladen varierer
- Test altid i de browsere, der skal understøttes, før du er afhængig af datalist
Hvornår datalist ikke skal bruges
Datalist er ikke ideel, når:
- Du har brug for streng validering, så brugeren skal vælge fra listen
- Du har brug for brugerdefineret styling af valgmuligheder, fordi browseren styrer hele udseendet
- Du har brug for gruppering, fordi optgroup ikke understøttes i datalist
Brug i disse tilfælde en brugerdefineret autofuldførelseskomponent med ARIA role="combobox".
datalist kontra søgefelt
Sammenlign datalist med et søgefelt med autofuldførelse:
<input type="search" name="q" list="search-suggestions">
<datalist id="search-suggestions">
<option value="HTML tutorial">
<option value="HTML forms">
<option value="HTML accessibility">
</datalist>
<!-- type="search" provides search-specific UI on mobile -->
<!-- list attribute adds datalist suggestions to any input type -->Hurtigt tjek
Hvordan knytter du et input til dets datalist-element?
Opsummering: datalist
Det vigtigste om datalist:
<datalist id>+<input list>— knyttes sammen med matchende id/list- Brugeren kan skrive frit eller vælge et forslag
- Brug
<select>, når valget skal begrænses - Fungerer med tekst, interval, farve og andre inputtyper
- Forslagene filtreres, mens brugeren skriver
Lær HTML med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 40
- Lektioner
- 159
Ofte stillede spørgsmål
Er lektionen “Datalist til autofuldførelse” gratis?
Ja — alle 3 lektioner i læringssporet HTML Academy, inklusive “Datalist til autofuldførelse”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. HTML Academy-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Datalist til autofuldførelse”?
Foreslå inputværdier med datalist-elementet Du øver dig i HTML Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på HTML Academy?
Der kræves ingen tidligere erfaring. HTML Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 4 af 4.
Hvor lang tid tager lektionen “Datalist til autofuldførelse”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne HTML Academy-lektion?
Ja. Alle HTML Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Select- og option-dropdownmenuer
- Textarea til input over flere linjer
- Grupper af afkrydsningsfelter og alternativknapper
- Datalist til autofuldførelse