Black Friday je tu! Využij jedinečnou příležitost a získej až 80 % znalostí navíc zdarma! Více zde
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
BF extended 2022

Select - Český HTML 5 manuál

<select>

<select> je elementem formuláře, který (jak již nazev napovídá) umožňuje vybrat 1 nebo více možností z nabídnutých hodnot. Může mít podobu vyjížděcího comboboxu nebo může být určitý počet možností stále zobrazen.

Jednotlivé možnosti vkládáme pomocí tagu <option>.

Ukázka použití

Jednoduchý <select> by mohl vypadat např. takto (samozřejmě musí být vložen v elementu <form>):

<select name="den">
    <option value="1">Pondělí</option>
    <option value="2">Úterý</option>
    <option value="3" selected="selected">Středa</option>
    <option value="4">Čtvrtek</option>
    <option value="5">Pátek</option>
    <option value="6">Sobota</option>
    <option value="7">Neděle</option>
</select>

V prohlížeči se HTML kód výše zobrazí následovně:

HTML formulář s elementy select a option

Atributy

<select> má následující atributy:

  • autofocus - Atribut je typu boolean. Pokud je uveden, element se zaktivní po načtení stránky.
  • disabled - Atribut je typu boolean. Pokud je uveden, nelze měnit hodnotu elementu a je často zobrazen jako zašedlý.
  • multiple - Atribut je typu boolean. Pokud je uveden, je možno zaškrtnout více možností.
  • size - Určuje počet zobrazených možností. Pokud má hodnotu 1 nebo není uveden, je zobrazen jako vyjížděcí combobox (viz. výše). Pokud je uvedeno vyšší číslo, je zobrazen jako rozbalený seznam možností. Když je možností více než udává size, zobrazí prohlížeč posuvník.

Přidejme výše uvedené ukázce atribut size s hodnotou 3. Výsledek bude následující:

HTML formulář s elementy select a option s nastavenou velikostí 3
  • form - Element může být definován mimo formulář a následně být k tomuto formuláři připojen uvedením atributu form s hodnotou id formuláře. Element může patřit více formulářům.
  • name - Definuje jméno elementu. Jméno musí být unikátní vzhledem k formuláři a je po odeslání použito jako klíč v dvojici klíč-hodnota, která se na server odešle.

<option>

Element <option> je součástí <select> nebo <datalist> a reprezentuje jednu z možností, které může uživatel vybrat.

Atributy

Element má následující atributy:

  • disabled - Atribut je typu boolean. Pokud je uveden, možnost nelze vybrat.
  • label - Udává zkrácený popisek možnosti, který se zobrazí v seznamu.
  • selected - Atribut je typu boolean. Pokud je uveden, je daná možnost předem vybrána.
  • value - Udává hodnotu, která se má poslat serveru. V ukázce výše vidíme, že se pro zjednodušení po odeslání formuláře odešle v klíči den jeho číselná hodnota.

<optgroup>

Možnosti v elementech <select> nebo <datalist> můžeme seskupovat tagem <optgroup>.

Atributy

<optgroup> může obsahovat atributy:

  • label - Popisek skupiny možností.
  • disabled - Atribut je typu boolean. Pokud je uveden, nelze možnosti v dané skupině vybrat.

Ukázka použití

Uveďme si ukázku:

<select name="den">
    <optgroup label="Pracovní dny">
        <option value="1">Pondělí</option>
        <option value="2">Úterý</option>
        <option value="3" selected="selected">Středa</option>
        <option value="4">Čtvrtek</option>
        <option value="5">Pátek</option>
    </optgroup>
    <optgroup label="Víkend">
        <option value="6">Sobota</option>
        <option value="7">Neděle</option>
    </optgroup>
</select>

A výsledek:

HTML formulář s elementy select a option, sdružených do optgroup

 

Všechny články v sekci
Formuláře - Český HTML 5 manuál
Článek pro vás napsal David Čápka
Avatar
David je zakladatelem ITnetwork a programování se profesionálně věnuje 13 let. Má rád Nirvanu, nemovitosti a svobodu podnikání.
Unicorn university David se informační technologie naučil na Unicorn University - prestižní soukromé vysoké škole IT a ekonomie.
Aktivity

 

 

Komentáře

Avatar
Petr
Tvůrce
Avatar
Petr:30.7.2012 16:23

To selected bych zapsal spíš jako selected="selec­ted". Vím, že to prohlížeče berou i takhle, ale není to XML validní.

 
Odpovědět
30.7.2012 16:23
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Petr
David Čápka:30.7.2012 16:29

Jo, máš pravdu, opravím :)

Odpovědět
30.7.2012 16:29
One of the most common causes of failure is the habit of quitting when one is overtaken by temporary defeat.
Avatar
HeroX
Člen
Avatar
HeroX:14.1.2017 10:15

Ahoj, můžu se prosím zeptat, jestli je možné tento select naplnit hodnotami z databáze? Případně jestli mi můžete poradit jak na to? Díky

 
Odpovědět
14.1.2017 10:15
Avatar
Jan Lupčík
Supertvůrce
Avatar
Odpovídá na HeroX
Jan Lupčík:14.1.2017 11:23

Ano, samozřejmě. Bylo by dobré, pokud ještě neumíš, se začít učit databáze (počítám s tím, že PHP umíš). Pokud už umíš vybrat data z databáze, stačí tyto data vypsat pomocí funkce foreach nějak takto:

<select name="days">
        <?php foreach ($values as $value) : ?>
                <option value="<?= $value['day_id'] ?>"><?= $value['name'] ?></option>
        <?php endforeach ?>
</select>
Odpovědět
14.1.2017 11:23
TruckersMP vývojář
Avatar
Petr Vocel
Tvůrce
Avatar
Petr Vocel:21.7.2017 9:41

Pokud máme víceúrovňový výběr pomocí více "selektů" potřebujeme dosáhnout automatického submitu formuláře, při změně vybrané hodnoty některého selektu, abychom mohli opravit navazující hodnoty ve zbývajících selektech. Možná by chtělo naznačit (v lekci) jak lze takovou akci vyvolat. Já jsem to dost dlouho hledal na internetu než se mi podařilo položit správnou otázku.
Ted vím, že to lze vyvoláním javascriptu pomocí parametrů onchange="this­.form.submit()". Je ještě nějaký jiný způsob ?

 
Odpovědět
21.7.2017 9:41
Avatar
Jiří Veselý:1.5.2018 14:12

Ahoj, je možné nějak pomoci vice selectů vybrat určitý obrázek ?

 
Odpovědět
1.5.2018 14:12
Avatar
Odpovídá na Jan Lupčík
Josef Naňák:26.4.2019 17:51

A jak lze tuto možnost zapsat v TypeScriptu? Děkuji.

Odpovědět
26.4.2019 17:51
"Hledáš-li pravdu, nedívej se dál než ke svému srdci." [John Lenon]
Avatar
Richard Bojda:23.11.2020 17:52

Ahoj, tento element při výběru pomocí kláves reaguje pouze na první písmeno. Je zde nějaká možnost aby se choval stejně jako klasický kombo box, tedy když začnu psát postupně omezí seznam na hodnotu celého řetězce z klávesnice?
Umí to datalist, ale chtěl bych zůstat u toho, že mohu vybrat pouze z předdefinovaných hodnot na rozdíl od datalistu.

 
Odpovědět
23.11.2020 17:52
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 8 zpráv z 8.