Nové typy inputů v HTML5: email, tel, number

Všechny nové typy inputů nemají dostatečnou podporu v prohlížečích, ale ty hlavní je velmi dobré používat. Proč?

Nefungují v IE9 a starších, ale fallbach je v pohodě: Zobrazí se tam jako type="text", což je výchozí typ inputu.

Ukázka

<input type="search">

Políčko pro vyhledávání. Funguje úplně stejně jako type="text". Jediný rozdíl může být ve vzhledu. Na platformách, které odlišují vzhled vyhledávacího pole, bude vypadat jinak. Příkladem mohou být systémy od Apple.

V prohlížeči Safari přijímá vyhledávací políčko několik dalších atributů. Například:

  • autosave – pod uvedeným názvem (autosave="nazev") ukládá vyhledávací fráze do prohlížeče
  • incremental – zda má vyhledávací políčko fungovat jako našeptávač
  • results – kolik výsledků může vyhledávací políčko vracet

type=“email”

<input type="email">

Pole pro vložení e-mailové adresy. Prohlížeče mohou například pomoci tím, že nabídnou jednodušší vstup závináče – @. To také mobilní prohlížeče dělají na virtuálních klávesnicích.

Tipy:

  • Atribut multiple – nastaví možnost vložení více e-mailových adres

type=“url”

<input type="url">

Pole pro vložení celé adresy. Prohlížeče pomáhají tím, že nabídnou jednodušší vstup řetězců jako http://, www nebo třeba /.

type=“tel”

<input type="tel">

Pole pro vložení telefonního čísla.

Na rozdíl od type="email" a type="url" prohlížeče nekontrolují syntaxi. Důvod je prostý – formátů je děsně moc. Doporučuje se, abyste si formát hlídali sami pomocí atributu pattern.

type=“number”

<input type="number">

Vložení celého čísla. S drobnými chybami funguje ve všech moderních prohlížečích: caniuse.com/input-number

Tipy:

  • <input type="number" pattern="[0-9]*" inputmode="numeric"> Zajistí otevření numerické klávesnice skoro na všech zařízeních s Androidem a iOS. Pokud si ale chcete být opravdu jistí, použijte type="tel".

type=“file”

<input type="file">

Vložení souboru.

Tipy:

Někdy

type=“range”

<input type="range">

type=“color”

<input type="color">

type=“date”

<input type="date">
<input type="datetime">
<input type="datetime-local">
<input type="month">
<input type="time">
<input type="week">

Tipy a triky