tizedespont, DEL billentyű megkülönböztetés javascriptben
Sziasztok !
A fenti problémába futottam bele és az event.keyCode-dal természetszerűleg nem megy a dolog, hiszen mindkét esetben 46 a kód.
Előre is köszönöm a segítségetek.
■ A fenti problémába futottam bele és az event.keyCode-dal természetszerűleg nem megy a dolog, hiszen mindkét esetben 46 a kód.
Előre is köszönöm a segítségetek.
charCode
nem értem
A többi helyen csak azt láttam totális káosz van ebben a témában (is). :-)
Böngészőfüggő, keyup, keydown, keypress függő, plusz keyCode, charCode függő.
Most én vagyok hülye vagy tényleg káosz van ?
Framework?
Teszt eredmények
még mindig nem értem :-)
tipp:
Nekem gyanús, hogy nyomva tartott Shift/Alt mellett a keyCode ugyanazt fogja tartalmazni, míg a charCode változik. Nem próbáltam, csak tipp, de a két tulajdonság neve nekem ezt sugallja.
keyCode
A charCode azt azonosítja, hogy a billentyű leütésével milyen karakter leütés lett azonosítva, és ehhez jönnek még a módosítók, hogy pl. a
Shift/Alt/Ctrl
le volt-e nyomva az adott pillanatban. Amennyiben az adott karakternek nincs Unicode-os azonosítója, akkor a 0-t fogja visszaadni, mint pl. aDel
gomb. Érdemes elolvasni a megjegyzéseket is a pontosabb értelmezés érdekében.Ezen kívül érdemes áttekinteni a KeyEvent táblázatot, amiből kiderül, melyik gombnak mi a keyCode / charCode értéke.
sommázat
Javascripttel nem lehetséges a tizedespont ill. DEL billentyűket megkülönböztetni.
Hogy miért ? Mert a keyCode ill. charCode egyidőben nem elérhető (lásd Poetro által megadott linket).
tizedespont keyCode: 46 charCode: 46
DEL keyCode: 46 charCode: 0
Itt tartunk ma, a 21. században. Két billentyűt nem tudunk megkülönböztetni a 101-ből. Végülis a számok megállnak 79-nél. Ez az egész csak vicc lehet.
Különbség
:-)
Insert, Home, End stb, funkcióbillentyűk, Backspace
Hát skacok ez valahogy nem akar összejönni.
keyCode
a kettő együtt nem megy
együtt
ezt olvastam
És ezt
quirksmode.org/js/keys
Üdv:
Gábor
köszi
onkeydown használatakor a keyCode tizedespont esetén 190, DEL esetén 46. Ezzel már lehet kezdeni valamit.
Az azonban továbbra is magas, hogy egy ilyen egyszerű dolog miért van ennyire elbonyolítva.
Köszönet a linkért Gábor!
Nincs mit :-)
Persze ez utópia, meg nyilván az esetedben nem is fontos, de tervezés során gondolhatunk rá, hogy kiírjunk valahol egy üzenetet ("Kérem nyomja meg a T billentyűt a (T)örléshez!" vagy "Használja a wasd billentyűket a navigációhoz") és máris "web safe" billentyűink vannak.
Persze az adott alkalmazás mindig bonyolíthatja a helyzetet, csak gondoltam ezt ide leírom, mert úgy éreztem belülről fakad :-)
Üdv:
Gábor
input
hogy azért ne legyen teljes az öröm
filter
ez jó ötlet
félmegoldás
Lassan kezdem úgy érezni proclubnak igaza van. :-)
nem értem
JQuery:
beégtem :-)
Ez egy igazán elegáns megoldás el kell ismernem.
Az egyetlen szépséghibája, hogy egy rövid ideig megjelennek a nem engedélyezett karakterek (nyilván, mert másképp nem lenne használható a reguláris kifejezés).
mit szóltok hozzá ?
Az alábbi kód célja, hogy az input mezőbe számokon kívül csak a tizedespontot, minusz jelet, backspace-t és delete-et engedi beírni. Ez most 3 böngészővel működik.
még fényeztem egy kicsit