Formuláře - People(dot)tuke(dot)sk
Transkript
Formuláře - People(dot)tuke(dot)sk
Formuláře Tag Význam Párový Výskyt form formulář ano input vstupní pole ne <form> select výběrové pole ano <form> option volba ne <select> textarea velké vstupní pole ano <form> label popis pole ano <form> fieldset skupina polí ano <form> legend popis pole ano <fieldset> optgroup skupina voleb ano <select> button ano <form> tlačítko form Formulář. Párový tag. Uzavírá skupinu ovládacích polí do jednoho formulá ře, který bude najednou odeslán. Atributy tagu <form> Atribut Význam Hodnoty action skript, který bude zpracovávat data URL method způsob předávání dat get | post enctype způsob zakódování dat application/x-www-form-urlencoded | multipart/form-data | libovolná mime deklarace target cílové okno nebo rám _self, _blank, _top, _parent, nebo jméno rámu nebo okna Action obvykle míří na nějaký CGI skript nebo PHP nebo ASP. Není-li uvedeno, odešlou se data téže stránce. Výchozí metoda atributu method je get. Říká, že se data budou předávat jako součást URL, tedy v řádku adresy. Method=post zabalí odesílaná data a odesílá je nezávisle, takže nejsou vidět. Post je dobré nastavit u delších formulářů. Atributem enctype se nemusíte zabývat, pokud vám nepůjde o posílání souborů nebo o přesný výstup českých znaků (pak nastavte multipart/formdata). Pro posílání jednoduché pošty doporu čuji enctype="text/plain". Následuje popis vstupních polí formuláře. Dělají se pomocí tagů <input>, <select> a <textarea>. Tyto musejí být umístěny v elementu <form>, ale navíc mohou být třeba i v tabulce. Popisky vstupních polí se dělají normálním textem kolem nich. input Vstupní pole. Nepárový tag. Obecné atributy tagu <input> Atribut Význam Hodnoty type druh vstupního pole text | password | hidden | radio | checkbox | submit | reset | image | file | button name jméno pole, které se odesílá s daty libovolné jméno value hodnota pole (původní hodnota pole nebo text zobrazovaný na tlačítku) libovolná hodnota disabled políčko bude šedé a nepůjde měnit (jen v některých prohlížečích) v IE se neodesílá bez hodnoty readonly obsah pole nepůjde měnit (fachá jen v některých prohlížečích) bez hodnoty align zarovnání (jako u obrázku) right, left + těch dalších x možností Další atributy jsou přípustné na základě hodnoty atributu type. Mohou to být size, maxlength, checked, autocomplete, src a accept (vizte níže). Atribut type určuje typ políčka Input v sobě zahrnuje celou škálu různých kolonek, tlačítek a přepínačů -- to všechno závisí na atributu type. Tag <input>, atribut type. Různá vstupní pole. type= text Druh vstupního pole obyčejné textové pole password textové pole s hvězdičkami hidden skryté pole s předem nastavenou hodnotou radio přepínač puntíků (několik tagů <input type=radio> stejného jména (name) s různými hodnotami tvoří skupinu možností) checkbox zatrhávací tlačítko Další atributy size= šířka ve znacích maxlength = nejvyšší možný počet zadaných znaků, autocomplete = doplňování známých hodnot (popis níže) size= šířka ve znacích maxlength- maximum znaků checked -- atribut bez hodnoty způsobí stisknutí puntíku checked -- atribut bez hodnoty způsobí zatržení submit potvrzující tlačítko způsobující odeslání formuláře reset tlačítko na smazání všech polí (na přednastavenou hodnotu) image potvrzující tlačítko odesílající navíc souřadnice kliknutí (name.x a name.y (php je dostává jako name_x a name_y )) src= URL obrázku (navíc nepoužitelné dynsrc, lowsrc jako u <img>) file umožní zadat soubor accept = MIME typ nabízených souborů button tlačítko ovládané skriptovými atributy V některých popisech HTML se vyskytují ještě typy range, scribble a jot, které ale podle mých zkušeností nikde nefungují. Příklady použití tagu input: Obyčejné textové pole: <input type="text" name="jmeno"> nebo <input name="jmeno"> Obyčejné textové pole dlouhé 10 znak ů: <input type="text" size="10" name="jmeno"> Textové pole s p ředvyplněnou hodnotou ahoj: <input type="text" name="jmeno" value="ahoj"> Pole pro heslo: <input type="password" name="heslo"> bude se hvězdičkovat. Skryté pole pro p ředávání skrytých parametr ů: <input type="hidden" name="skryte" value="ahoj"> Tři přepínací tečky (radio buttony), první vybraná: <input type="radio" name="stejne_jmeno" value="první" checked="checked"> <input type="radio" name="stejne_jmeno" value="druhá"> <input type="radio" name="stejne_jmeno" value="t řetí"> Zaškrtávací čtvereček (zaškrtnutý): <input type="checkbox" name="ctverecek" checked="checked"> Odesílací tlačítko: <input type="submit" value="Odeslat"> Zobrazit tento příklad. Input s type="reset" doporučuji nepoužívat, protože téměř nikdy není užitečný. Naopak uživatele často strašně naštve, protože je automaticky spojený se stisknutím klávesy escape -- každé zmáčknutí escape vymaže formulář. <input type="text"> Type="text" znamená, že půjde o obyčejné vstupní pole. Text je defaultní hodnota, takže když se type vůbec nezadá, funguje to stejně. Další atributy tagu <input type="text"> atribut size Význam Hodnoty obyčejné číslo, vyjadřuje počet znaků. Pro přesné zadání rozměru se lépe hodí css vlastnost width, která má vyšší prioritu. délka pole obyčejné číslo, více znaků prostě nejde zadat. maxlength maximální počet znaků Bývá zvykem dávat vyšší hodnotu, než má size. povolí nebo zakáže autocomplete doplňování známých hodnot on | off Zajímavě funguje u textového inputu atribut autocomplete="off". Zabrání tomu, aby se políčko vyplnilo nějakou dříve zadanou hodnotou v nějaké jiné stránce (shoda se myslím určuje podle atributu name). Častá chyba u maxlength: stává se mi, že prohodím na konci písmenka t a h, maxlenght je špatně, maxlength je dobře. select Výběr. Zobrazí obdélníček s možnostmi nebo roletkové menu. Párový tag, jeho obsahem jsou jednotlivé volby -- tagy <option>. Atributy tagu <select> Atribut name Význam jméno pole odesílatné s daty Hodnoty libovolné jméno multiple umožnění hromadného výběru (s Ctrl) bez hodnoty size počet zobrazených řádků číslo disabled políčko bude šedé a nepůjde měnit (jen v některých prohlížečích) bez hodnoty Pokud je size 1, bude to roletkové menu. Při size 2 a vyšší se <select> zobrazí jako obdélníček s rolovací lištou. Bude-li hodnot stejně nebo méně než size, nebudou tam ani rolovací lišty. Šířka selectu, jak se vykreslí na stránce, se odvozuje od nejširší option. Vzhled šedivé šipky s nabídkou nelze v Internet Exploreru nijak zm ěnit. Zev všech HTML tagů jsou s vykreslováním tagu select jsou asi největší problémy, select například nejde dost dobře stylovat přes CSS (pouze tučnost, kurziva a barva pozadí přes <option>). Je to tím, že tento ovládací prvek přebírají prohlížeče (zejm. Internet Explorer) z grafického prostředí operačního systému. option Položka výběru. Nepárový tag (třebaže se může zadávat párově), obsahem elementu je text za tagem až do dalšího tagu. Atributy tagu <option> Atribut value Význam Hodnoty řetězec odesílaný jako hodnota pole řetězec selected Položka je předem vybrána bez hodnoty Text za tagem <option> se zobrazí ve výběru. Pomocí kaskádových stylů (CSS) se v IE 6 dají položky option formátovat pouze omezeně. Dá se jim nastavit jen barva písma (color) a barva pozadí (background-color). Uvnitř tagu <option> jsou ignorovány všechny html tagy. textarea Rozsáhlé vstupní pole (textarea = angl. prostor pro text). Zobrazuje ráme ček s lištou.. Párový tag. Nemá atribut value, za implicitní hodnotu se považuje obsah elementu. Jinak řečeno, tag <textarea> obklopuje text, který se zpočátku zobrazí uvnitř </textarea>. Atributy tagu <textarea> Atribut Význam Hodnoty name jméno odesílané s daty jméno cols šířka pole ve znacích číslo rows výška pole v řádcích číslo disabled políčko bude šedé a nepůjde měnit bez hodnoty (jen v některých prohlížečích, tehdy se neodesílá) readonly obsah pole nepůjde měnit (fachá to jen v některých prohlížečích) bez hodnoty wrap zalamování slov a řádků hard, soft, off Tag textarea nemá žádnou obdobu atributu maxlength pro maximální po čet znaků, jako je tomu u tagu <input type="text">. Má-li být počet znaků omezený, je potřeba to složitěji skriptovat javascriptem (přes .value.length). Tag <textarea>, atribut wrap wrap= Význam soft řádky se smějí zalomit jenom v místě mezery. V praxi se zalamují i uprostřed slova, přesahuje-li slovo celý řádek. Odesílá se tak, jak je zapsáno. hard řádky se zalamují v místě mezery nebo kdekoliv v příliš dlouhém slově. Pokud se ale zalomí, je tento řádkový zlom také odeslán na server jako konec řádku. off řádek se nezalamuje vůbec nikde (Interet Explorer), popř. jen na konci slov (Mozilla). Objevuje se vodorovný scrollbar. Odesílá se tak, jak je zapsáno. Prohlížeče se liší v tom, jakou hodnotu mají nastavenu jako výchozí. Zatímco v IE a v Mozille je to soft, v Netscape je to pravděpodobně off. Doporučuji vždy zadávat wrap="off". Existují ještě starší hodnoty physical (odpovídá hard) a virtual (odpovídá soft), ale jejich podporu jsem netestoval. Následující tagy do HTML přibyly až ve verzi 4.0. Jejich implementace není v pětkových verzích prohlížečů úplná, ale obecně už (na podzim 2005) fungují perfektně. label Štítek, popisek pole. Vyskytuje se nejlépe před políčkem, ke kterému se vztahuje, aby to i v prohlížečích, které label nepodporují, dávalo smysl. Výhodou je aktivace pole formuláře, pokud se klikne na štítek, a lepší automatizace (accesskey, css). Vlastní text štítku se zadává jako obsah elementu -- jde o tag párový. Atribut tagu <label> Atribut for Význam Hodnoty svázání s polem stejného identifikátoru hodnota atributu id u svázaného pole Příklad: <label for="drak">Zadej jméno draka:</label> <input type="text" id="drak"> fieldset Skupina polí. Párový tag, který opticky sdruží několik prvků formuláře a vykreslí kolem nich slabý rámeček. Čáru rámečku může přerušit text tagu <legend>. <fieldset> nemá žádné atributy kromě obecných. Vzhled se dá upravovat pomocí CSS. Starší prohlížeče tento tag ignorují. Příklad vidíte níže u tagu legend. legend Popisek skupiny polí (tagu <fieldset>). Zobrazuje se nad skupinou polí p řes horní čáru fieldsetu. Musí být zapsána hned za značkou <fieldset>. Obsahem tagu <legend> může být libovolné HTML (rozumné). Čtyřkové prohlížeče tag nepodporují. Atribut tagu <legend> Atribut align Význam Hodnoty zarovnání popisku left | right | center Příklad: <fieldset> <legend>Milá zvířátka</legend> Kočičky: <input name="kocky"><br> Dráčci: <input name="draci"> </fieldset> optgroup Skupina voleb ve výběrovém prvku <select>. Párový tag, kterým se obklopí skupinky tagů <option>. V šestkových verzích prohlížečů se potom takové skupinky zobrazí odsazené a budou mít nadpis tu čnou kurzívou. Ten nadpis se zadává jako atribut label tagu <optgroup>. Pětkové a nižší verze prohlížečů tento tag ignorují a zobrazují volby normálně pod sebou. Příklad: <select> <optgroup label="nadpis skupinky"> <option>první</option> <option>druhá</option> </optgroup> </select> button Tlačítko. Jedinou a hlavní výhodou buttonu oproti tagu <input> je, že se do n ěj dá vložit libovolný HTML kód, který se na tlačítku zobrazí. Takže se mezi <button> a </button> dají vkládat obrázky, nadpisy, prostě cokoliv. Je to prostě tag párový. Příklad: <button name="cokoliv" value="cokoliv">tlačítko s <b>tučným textem</b></button> Atributy tagu <button> Atribut Význam Hodnoty type druh vstupního pole submit | reset | button name jméno pole, které se odesílá s daty libovolné jméno value hodnota, která by se měla odesílat (nefunguje v Exploreru, ten odesílá obsah tagu) libovolná hodnota V praxi se button chová hodně podobně jako <input> se stejným type. Při odesílání formuláře by se normálně měly spárovat hodnoty name a value. Implementace tagu button v Internet Exploreru ale obsahuje chybu, kdy se namísto value odesílá text z obsahu buttonu (tedy to, co je vid ět na tlačítku, přesněji řečeno vlastnost innerText). Kvůli této chybě se ale button v praxi moc nepoužívá. Tag <button>, atribut type type= submit odeslání formuláře Význam reset vymazání formuláře button nic nedělá, pokud na něj není navázán skript (nejčastěji přes onclick) Důležitý atribut type, podobný atributu type u tagu <input>. Nastavení type="submit" způsobí, že tlačítko bude odesílat formulář. Výchozí hodnota atributu type (tedy když se type nezadá) je submit (odesílací tla čítko formuláře), ale Explorer chápe výchozí hodnotu type jako button. V praxi tedy vždycky, když chcete použít button, musíte type zadat, jinak se to bude v každém prohlížeči chovat jinak. Úplně nejlepší je asi <button> pokud možno nepoužívat a z ůstat u <input>.