Garth

Jak povolit uživateli psát do inputu pouze čísla?

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;
}






<< zpět




Nejnovější články