Autor Zpráva
still_wolf
Profil *
Dobrý den,
mam takovej problém, mam políčko na telefonní číslo a chci zakázat aby se do něj dalo psát písmena v okamžiku psaní. Prostě když člověk zmáčkne cokoliv kromě 0-9, tak aby to nereagovalo.
Děkuji
Chamurappi
Profil
Reaguji na still_wolfa:
<input onkeypress="var c = (event.charCode + 1) ? event.charCode : event.keyCode; return c && c > 47 && c < 58">
still_wolf
Profil *
Mockrát děkuji :-)
Velda
Profil
Chamurappi:
přišlo mi to moc jednoduché, nebude to tím, že v Opeře to nefunguje? :P
Alphard
Profil
Velda:
V mé Opeře (10.61) to funguje.
Spíš by mi vadilo, že nelze smazat překlep a nejde tabulátorem skočit na další pole, ale to v zadání nebylo.
Doplňuji, nejde tam vložit zkopírované číslo a nejde v postatě nic. Aspoň si člověk zapamatuje, kam nechodit.
Joker
Profil
still_wolf:
chci zakázat aby se do něj dalo psát písmena v okamžiku psaní
Viz Alphard, udělal bych raději validaci na onchange (tj. poté co tam uživatel něco napíše a chce jít na další) a třeba červeně to podbarvil.

nejde tam vložit zkopírované číslo
Nešlo by vložit myší přes kontextové menu? A dokonce nejen číslo, ale cokoliv?
Alphard
Profil
Joker:
Nešlo by vložit myší přes kontextové menu?
Pravda, ani mě to nenapadlo. Daný web by mi ale musel nabízet skutečně hodně, abych to dělal…
still_wolf
Profil *
Ohledně toho vkládání jsem si nevšiml. Ale tabulátor funguje. Šlo by nějak povolit vkládání? Jde mi o to, aby uživatel nemohl napsat text to dotyčného pole a ani vložit. Zkoušel jsem to udělat tak, že dotyčný text postupně mazal, ale bylo to viditelné mazání. Jde mi o to, že to dělám webovky kámošovi a ten tam má právě tento požadavek.
Nox
Profil
A co onchange -> smazat vše neplatné? Myslim že by to mělo fungovat jak chceš
still_wolf
Profil *
to ano, ale jak říkám, to mazání bylo patrné a to mi přijde blbý.
Velda
Profil
still_wolf:
tak budeš muset u Opery odchytat všechny klávesy, který chceš, aby byli použitelný
a to vkládání můžeš ošetřit vcelku jednodušše... ctrlKey
still_wolf
Profil *
zkoušel jsem tam povolit ctrl+v a backspace pomocí ASCII tabulky (http://www.google.cz/#hl=cs&q=ASCII+tabulka+ctrl%2Bv&aq=f&aqi=&aql=&oq=&gs_rfai=&fp=1585f034dfe902d1), ale když jsem je dosadil do kódu, tak se mi povolili všechny znaky :-(
Nox
Profil
Když nenajdeš vhodný řešení, tak tam prostě napiš že nemají psát čísla :)

A jinak.... pokud máš problém u Opery, co to dát jako
<input type="number">
? to je navíc nejčistší řešení (a zároveň je prvek použitelný v nepodporujících prohlížečích, použije se tam prostě type=text)
Joker
Profil
still_wolf:
jak říkám, to mazání bylo patrné a to mi přijde blbý.
Zatímco když se nedají psát jiné znaky než čísla, tak to patrné není? :-)

Mně osobně se zdá dokonce lepší, když je patrné, že jsem napsal nějaký neplatný znak (třeba napíšu písmeno a pole zčervená, nebo se při opuštění pole odstraní), než když stisknu klávesu a nic se nestane (Nějaká chyba? Nefunguje klávesnice? Omylem jsem někam kliknul?)
still_wolf
Profil *
Tak sjem to udělal tak, že to píše chybu a nejsou zablokovaná číslice. Jen bych se ještě chtěl zeptat jak zjistit pozici kurzoru v inputu (blikací svislá čára).
Děkuji

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0