Autor Zpráva
Lord_Lojza
Profil *
Zdravím ,

Potreboval bych poradit, mám formular a v nem textove pole, po odeslani formulare potrebuji overit zda bylo zadano pouze cislo, "number" a vzpsat hlasku neco jako :

if (typeof("number")=="$" )
{
echo "Nebylo zadano cislo";
return false;
}
else
{
echo "zadane cislo je ", $cislo ;
}

newim jak presne funkci typeof() pouzit prosim o pomoc
los
Profil *
Operátor typeof určuje typ objektu, ktorý je uložený v nejakej premennej. Ak máš textové pole input, tak typeof input.value bude vždy "string".

Ak chceš zistiť, či je v reťazci input.value číslo, tak ho môžeš skonvertovať na číslo odčítaním nuly a použiť funkciu isNaN: isNaN(input.value - 0)

Prípadne môžeš regulárnym výrazom testovať, či boli zadané číslice, napr.: /^\d+$/.test(input.value).
peta
Profil
Lord_Lojza
newim jak presne funkci typeof() pouzit
http://javascript-reference.info/
Lord_Lojza
Profil *
wow, panove, ja vam velmi dekuji za rady a popostrceni :)
Lord_Lojza
Profil *
tak sem to vyspekuliroval

<script type="text/javascript">
function format(input)
{
var num = input.value.replace(/./g,'');
if(!isNaN(num))
{
input.value = num;
}
else
{
alert('Do tohoto pole můžete zadávat pouze číslo!');
input.value = '';
}
}
</script>

<form action="" method="post">
<input name="upravid" type="text" size="6" maxlength="6" onkeyup="format(this)" onchange="format(this)">
</form>
peta
Profil
Lord_Lojza
tak to je taky reseni. Ja bych asi odchytaval klavesy, ale asi je to lepsi.
mozna bych ten regularni vyraz spise upravil, viz los:
/[^0-9]/g,""
/D/g,""
/^d+$/.test(input.value)
Toto téma je uzamčeno. Odpověď nelze zaslat.