Diskuze: Ošetření vstupu
V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 4 zpráv z 4.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.
Ahoj,
dá se to řešit elegantněji pomocí HTML5:
<input type="number" name="xxx" min="1" max="5">
Tohle ti zkontroluje, zda je v políčku číslo od 1 do 5 a navíc ti to např. na mobilu vyhodí číselnou klávesnici.
Existuje mnoho způsobů předpřipravených kontrol dat v HTML5 např. email, barva... a navíc si můžeš definovat vlastní pomocí regulérního výrazu.
Pokud však chceš mít jistotu, abys měl data OK např. v databázi, tak je musíš vždy zkontrolovat i na serveru. S číslem to můžeš udělat např. takhle v PHP:
$count = intval($_POST['count']);
Toto řešení uživatele pouze upozorní zbarvením inputu že jeho hodnoty jsou nepovolené ale já by jsem si spíše přestavoval něco co užívateli nedovolí nepovolený znak zapsat do inputu a povolí mu pouze zapsat číslice.
Ahoj,
můžeš použít kombinaci number input a JS. Kontrolovat to pomocí
event.keyCode je však zbytečně nízkoúrovňové a např. při pravé
tlačítko -> vložit to nebude fungovat.
Tady jsem pro tebe udělal řešení, které funguje:
https://jsfiddle.net/kkxc10pz/
Z hlediska UX to ale podle mého názoru není úplně ono. Myslím, že by skript neměl vůbec zasahovat do obsahů políček, protože člověk často píše "poslepu", ale měl by hlásit chybu, pokud je vstup špatný a donutit uživatele k opravě.
Například kdybych měl formulář pro rezervaci restaurace a tam by byl počet lidí a já bych napsal "max 5", skript by to automaticky předělal na "5" a pokud píšu naslepo, tak odejde chybná informace. Červenání políček + nedovolení formuláře odeslat je mnohem lepší volba.
Zobrazeno 4 zpráv z 4.