Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JS]Problem z przechwyceniem kodu klawiatury pod FireFox'em
Sokrates
post 4.05.2007, 20:50:25
Post #1





Grupa: Zarejestrowani
Postów: 96
Pomógł: 0
Dołączył: 11.09.2006
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Witam ,mam taki problem jak w temacie,a mianowicie mam pola
typu "input" do ktorych wprowadzam jakis text, chcem filtrowac to co
wprowadzam z klawiatury i dopuszczac tylko te znaki ktore sa
dozwolone dla danego pola (np dla pola 'wiek' bedzie mozna
wprowadzic tylko cyfry a dla pola 'imie' tylko litery).
Korzystam tu ze zdarzenia "onKeyPress" ktora wywoluje funkcje
"keyPress();"

W HTMLu wyglada to miej wiecej tak:
  1. <INPUT TYPE="text" SIZE=45 NAME="name" onChange="msg(this.form)" onKeyPress="keyPress();">

a w JavaScript
  1. function keyPress(){
  2. if (event.keyCode < 48 || event.keyCode > 57){
  3. event.returnValue = false;
  4. }
  5. }


Niestaty dziala to tylko pod IE i pod Opera, Pod FF nie chce to dzialac i wyswietla mi
taki komunikat:
event is not defined

Domyslam sie ze pod FF jakos inaczej definiuje sie zdarzenia, albo jakos trzeba zdefiniowac klase
"event". Dodatkowo w programie do sledzenia kodu widze ze kod klawisza znajduje sie pod zmienna
"charCode" a pod "keyCode" zawsze jest 0 co bym nie nacisnol. Moze ktos z was wie jak skonstruowac funkcje ktora bedzie obslugiwac przerwania z klawiatury pod FF.



Szukalem juz na necie niestety nic nie znalazlem, jesli bedzie ktos znal sposob rozwiazania mego problemu to prosze o pomoc.
Dzieki


--------------------
Pozdrawiam,
Sokrates
Go to the top of the page
+Quote Post
ferr
post 4.05.2007, 20:53:56
Post #2





Grupa: Zarejestrowani
Postów: 122
Pomógł: 3
Dołączył: 18.12.2004

Ostrzeżenie: (0%)
-----


  1. function keyPress(){
  2. event = event||e;
  3. if (event.keyCode < 48 || event.keyCode > 57){
  4. event.returnValue = false;
  5. }
  6. }


?


--------------------
Go to the top of the page
+Quote Post
Sokrates
post 5.05.2007, 12:43:20
Post #3





Grupa: Zarejestrowani
Postów: 96
Pomógł: 0
Dołączył: 11.09.2006
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


To chyba nie o to chodzi...
do tej linijki dodalem jeszcze na poczatku "var" i teraz mi rzuca wyjatkiem ze nie wie co to jest "e"



Chyba w FF inaczej definiuje sie obsluge zdarzen?

Ktos wie jak?


Udalo mi sie znalesc rozwiazanie , tak na szybko , jest jeszcze do dopracowania, bo pod Opera jak focus jest w polu textowym gdzie lapie przerwania klawiatury i wcisne jakies klawisze funkcyjne (np F5, odswiez), to nie dziala nie odswieza mi strony (mechanizm przechwytuje to przerwanie i nie dopuszcza go bo domyslnie mam w tym polu ustwione aby wpisywac tylko cyfry - wiec to muszę jeszcze dopracowac, ale ten blad wystepuje tylko w Operze.

Input gdzie wpisuje sie text wyglada tak:
  1. <INPUT TYPE="text" SIZE=45 NAME="wiek" onChange="msg(this.form)" VALUE="" onKeyPress="return keyPress(event);">


a sama funkcja tak:
  1. function keyPress(evt){
  2. var charCode = (evt.which) ? evt.which : event.keyCode
  3. if (charCode < 48 || charCode > 57){
  4. return false;
  5. }
  6. return true;
  7. }


Pozdrawiam


--------------------
Pozdrawiam,
Sokrates
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 24.07.2025 - 17:48