Příklady - kontrola dat formuláře JavaScriptem
Obsah:
- Kontrola formuláře - JavaScript a serverový script
- Co kontrolovat - povinná pole, hodnoty polí
- Jak kontrolovat
Kontrola formuláře - odeslání dat
Pokud bude JavaScript zapnutý, provede se kontrola dat a data budou odeslána na server pouze tehdy, pokud bude vše v pořádku. Pokud ne, zobrazí se uživate-li zpráva, co má doplnit a opravit.
Pokud bude JavaScript vypnutý, provede se odeslání dat bez kontroly JavaScriptem. Kontrola dat tedy musí proběhnout i skriptem na serveru. Pokud nebudou data v pořádku, server je vrátí k doplnění. Uživatel však musí čekat na odezvu serveru.
Co kontrolovat
- Kontrola vyplnění povinných polí - pole, které uživatel musí zadat, musí být označeno:
- např. tučným popiskem
- tučným rámečkem
- hvězdičkou apod.
- Kontrola textových a číselných hodnot polí
Pole smí obsahovat např.:- pouze písmena (bez diakritiky nebo s diakritikou) - např. příjmení, jméno, město, apod.
- pouze písmena bez diakritiky nebo číslice - např. přihlašovací jméno, heslo
- pouze číslice - např. cena, počet, rok narození, apod.
- pouze číslice, případně desetinnou tečku nebo čárku - např. cena, rozměr, apod.
- Kontrola specifických polí - je dán přesný formát zápisu, např:
- PSČ - 5 číslic nebo 3 číslice, mezera, 2 číslice
- rodné číslo - 10 číslic nebo 6 číslic, lomítko, 4 číslice
- číslo účtu, kód banky
- datum - 1-2 číslice, tečka, 1-2 číslice, tečka, 4 číslice
- webová adresa
- e-mail adresa
Jak provést kontrolu dat formuláře
- Kontrola vyplnění povinných polí:
- textové pole - není prázdné - value!=""
- textarea - není prázdná - value!=""
- seznam - je vybrána jiná položka než první, jejíž hodnota je prázdná - value!=""
- zaškrtávací pole - zaškrtnuto - checked (true)
- přepínač - je vybrán jeden z přepínačů - checked (není false všech přepínačů skupiny)
- Kontrola specifických polí - je dán přesný formát zápisu, např:
- textové pole - má určitou délku - length
- neobsahuje mezeru - indexOf(" ")==-1
- neobsahuje písmena s diakritikou - obdobně cyklem
- obsahuje @ - indexOf("@")>0
- představuje celé nebo desetinné číslo (s des. tečkou) - isFinite
- představuje celé - isFinite a současně indexOf(".")==-1
- atd.
- Efektivní a přesné je provedení kontroly pomocí regulárních výrazů.