HTML tlačítko <button>

HTML značka <button> slouží k vytvoření tlačítka. Je hodně podobná značce <input> s atributem type nastaveným na button, submit nebo reset<button> má tyto typy stejné.

Typický zápis:

<button type="submit" name="tlacitko" value="hodnota">
  Text tlačítka
<button>

Element <button> jde docela dobře stylovat.

Použít <input>, nebo <button>?

Podstatný rozdíl mezi značkami je, kromě různých druhů (<input> je povinně nepárový, <button> povinně párový), že do značky <button> je možné umístit další HTML kód.

Internet Explorer

Ve starších versích IE nebo i v novějších v QUIRK režimu se kolem značky <button> točí řada rozdílů.

Více odesílacích tlačítek

V IE 6 a starších se při použití více <button> tlačítek neodešle jen to, na které bylo kliknuto, ale úplně všechna <button> tlačítka.

Po odeslání se v IE 6 v URL objeví …&vysledek=Ano&vysledek=Ne, ačkoliv se zmáčklo jen jedno tlačítko.

Obsah značky místo value

Další nepěkná věc je, že starší IE odesílá jako hodnotu políčka obsah mezi <button> a </button> místo atributu value, který má značka nastavený.

Tlačítko Odeslatvalue nastavenou na Ano, přesto se v IE 7 a starších (v QUIRKu do IE 9 včetně) odešle obsah značky, tj. Odeslat (JavaScriptovou terminologií innerHTML).

Neodeslaní bez kliknutí

Další problém je neodeslání tlačítka v případě, kde se formulář odešle Enterem z jiného políčka. Tím trpí IE 8 a starší (nezávisle na <!doctype>).

Co s tím?

  • Nepoužívat ve formulářích <button>, ale <input> s odpovídajícím typem.

  • Zpracovávat formuláře na straně serveru tak, aby podoba, ve které se <button> odešle, nehrála roli. Tj. zda byl formulář odeslán testovat jiným políčkem. (Případně si potřebná data, která by mohl odesílat <button> uložit do <input type=hidden> — ten funguje spolehlivě.

To je všechno. Líbil se vám článek a chcete se dozvědět, až vyjde další?

Sledujte:

 

Připomínky mi pište do komentářů ↓

Tag <label> a atribut for

Značka <label> a atribut for

Značka <label> slouží ke svázání popisku s formulářovým prvkem. Kdy použít atribut for?

Reset políčka pro nahrávání souboru

Resetování <input type=file>

Jak resetovat (odstranit) hodnotu z <input>u pro upload souborů.

Rozbalovací nabídka <select>

HTML značka <select>

Popis, možnosti a vylepšení rozbalovacího výběru, HTML značky <select>.

Napodívání přes <datalist>

Našeptávání značkou <datalist>

Pro napovídání možností při vyplňování <input>u lze v HTML 5 použít značku <datalist>.

Input

HTML značka <input>

Všechny varianty značky <input>, možné atributy, vysvětlení a ukázky.

Komentáře