Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> onkeypress + backspace = problem w IE
Jarod
post 14.12.2008, 22:23:56
Post #1





Grupa: Zarejestrowani
Postów: 1 190
Pomógł: 27
Dołączył: 23.04.2005

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


Mam funkcję, która pozwala wpisywać w polu formularza tylko cyfry i kropkę. Działa prawidłowo pod Firefox i Operą. Pod IE mam problem - funkcja nie odczytuje klawisza backspace.
Googlując znalazłem info, że stosując onkeypress pod IE nie odczytam znaku backspace i że należy stosować onkeydown. Wtedy wszystko działa pod FF i IE ale Opera olewa całkowicie funckcję i można wpisać każdy znak. Czy jest sposób aby przerobić tą prostą funkcję tak aby działała prawidłowo pod FF, Operą i IE?

Kod
var floatingPointNumber = 0;

function onlyFloat(evt)
{
    var keyCode;
    
    if (window.event)
    {
                // DLA PRZEGLĄDARKI OPERA I IE
        keyCode = window.event.keyCode;

        if (keyCode == 8)
        {
            var sContent = document.getElementById('iMtow');
            if (sContent.value.substring(sContent.value.length-1,sContent.value.length) == '.') floatingPointNumber = 0;
        }
        
        if ((keyCode > 47 && keyCode < 58) || keyCode < 32 || (keyCode == 46 && floatingPointNumber < 1))
        {
            if (keyCode == 46) floatingPointNumber=1;
            window.event.returnValue = true;
        }
        else
        {
            window.event.returnValue = false;
        }
    }
    else
    {
                // FIREFOX
        keyCode = evt.which;
        
        if (keyCode == 8)
        {
            var sContent = document.getElementById('iMtow');
            if (sContent.value.substring(sContent.value.length-1,sContent.value.length) == '.') floatingPointNumber=0;
        }
        
        
        if ((keyCode > 47 && keyCode < 58) || keyCode < 32 || (keyCode == 46 && floatingPointNumber < 1))
        {
            if (keyCode == 46) floatingPointNumber=1;
            evt.returnValue = true;
        }
        else
        {
            evt.returnValue = false;
            evt.preventDefault();
        }
    }
}


--------------------
”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335)
Go to the top of the page
+Quote Post
erix
post 14.12.2008, 22:49:23
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Ale kombinujesz... http://forum.php.pl/index.php?showtopic=108354


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Jarod
post 14.12.2008, 23:08:21
Post #3





Grupa: Zarejestrowani
Postów: 1 190
Pomógł: 27
Dołączył: 23.04.2005

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


Cytat(erix @ 14.12.2008, 22:49:23 ) *


Dostajesz pomógł bo tak też można. Ale interesuje mnie jak rozwiązać problem klawisza backspace. Może mi się kiedyś przydać.

Pozdrawiam


--------------------
”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335)
Go to the top of the page
+Quote Post
erix
post 14.12.2008, 23:18:36
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
pod FF i IE ale Opera olewa całkowicie funckcję i można wpisać każdy znak.

A coś jest w konsoli błędów?


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Jarod
post 15.12.2008, 04:31:43
Post #5





Grupa: Zarejestrowani
Postów: 1 190
Pomógł: 27
Dołączył: 23.04.2005

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


Cytat(erix @ 14.12.2008, 23:18:36 ) *
A coś jest w konsoli błędów?

Nie, gdyby było to byłby to dla mnie jakiś punkt zaczepienia. Tak jak pisałem, wygooglałem, że w IE podobno nie da się użyć onkeypress i odczytać kodu ASCII klawisza backspace ponieważ ten klawisz jest zarezerwowany. Można użyć onkeydown ale opera sobie nie radzi z onkeydown.

A przecież są edytory WYSYWIG w JS więc musi się to dać jakoś napisać.


--------------------
”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335)
Go to the top of the page
+Quote Post
erix
post 15.12.2008, 11:16:15
Post #6





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
A przecież są edytory WYSYWIG w JS więc musi się to dać jakoś napisać.

To może przydałoby się pogrzebać w ich źródłach, nie? winksmiley.jpg

Spróbuj jeszcze tego: http://www.breakingpar.com/bkp/home.nsf/0/...7256AFB00141646


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
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: 18.06.2025 - 06:35