Nutnost vynucení psaní pouze čísel do daného inputu frmuláře je zřejmá. Pokud chceme, aby nám uživatel zadal například "počet dětí", či "počet kusů zboží" atd.. tak očekáváme číselnou hodnotu a ne text.
Řešení jak docílit výsledku je hned několik.
1) Řešení přez atribut "type" tagu "input" Výhody:
- pouhé přepsání atributu "type" z hodnoty "text" na "number"
- přidáním atributů "min" a "max" lze jednoduše omezit rozsah hodnot co může uživatel zadat. Nevýhody:
- hodnota "number" není podporována v IE9 a starších verzích tohoto prohlížeče
- Ne vždy je vhodný design "inputu" s šipkami nahoru/dolů
2) Řešení přez validaci dané položky. Výhody:
- funguje všude
- Validaci musíte napsat tak jako tak Nevýhody:
- Uživatel může napsat cokoliv, ale validace mu zamezí formulář odeslat.
Validovat lze i po každém kliku uživatele v dané položce.
Návod na validaci naleznete v článku Validace formuláře pomocí jQuery
3) Omezení stisku kláves přez jQuery Výhody:
- funguje všude
- dané jQuery lze napojit na pomocnou třídu například ".pouze_cislo" a tím vyřešit všechny inputy co mají být pouze číslem
- úpravou daného jQuery lze docílit omezení čísel jaké může uživatel zadat. Nevýhody:
- Další jQuery funkce na webu.
function isNumberKey(evt){
var charCode = (evt.which) ? evt.which : event.keyCode
if (charCode > 31 && (charCode < 48 || charCode > 57)) //48 je cislo "0" ; 57 je cislo "9" ; 31 je "unit separator" tudiz oddelovat jednotek
return false;
return true;
}