Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript] pola tekstowe
island
post
Post #1





Grupa: Zarejestrowani
Postów: 67
Pomógł: 1
Dołączył: 7.09.2008

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


Witam,

mam 20 pól tekstowych o rozmiarze 1

Zasada działania.
Wpisując literkę w pierwsze pole przeglądarka automatycznie powinna przechodzić do drugiego pola itd.
Używając klawisza backspace powinna kasować literkę i cofać się do poprzedniego pola.

Wszystko działa okej w Firefox,ale

W IE i Opera jak wstawię kursor w np: 15. pole i nacisnę Backspace to nie skasuje mi zawartości 15 pola tylko przeskoczy do 14. Jeśli następnie przycisnę BACKSPACE to wszystko już działa Okej: kasuje literki i przechodzi do pól o mniejszych Id. Chodzi o ten początkowy etap - wstawiam kursor w "15" naciskam backspace i oczekiwany rezultat przeze mnie to skasowanie zawartości oraz przejście do pola id 14.

To samo z wpisywaniem:
Po wstawieniu kursora np: w 1. pole i wpisaniu czegoś przeskakuje do 2. pola ale nie wpisuje zawartości pierwszego. Później już wszystko działa. ... chyba, że znowu wstawię kursor w inne pole za pomocą myszki.

Mam nadzieję , że w miarę jasno wytłumaczyłem o co chodzi: Oto kod

Kod
<input type="text" name="field_name_01" id="01" maxlength="1" value="" onkeypress="change_box(this,event)">
    ...
    <input type="text" name="field_name_20" id="20" maxlength="1" value="" onkeypress="change_box(this,event)">


Kod
function change_box(elem,event)
        {
                var liczba = 20;    
                var box = elem.id;
                var keyCode;
        
                    if (window.event)
                    {    
                    // dla IE i Opera
                    keyCode = window.event.keyCode;
                    if (keyCode==8)
                      {
                        box--;
                        document.getElementById(box).focus();
                      }
                    else
                      {
                        if (box==liczba)
                            box = liczba;
                        else
                              box++;
                          document.getElementById(box).focus();    
                      }
                    }
        }


Kod w JS jest tylko dla przeglądarki Opera i IE jako, że tutaj są problemy. Dla Firefoxa kod jest podobny, więc nie było sensu go kopiować.

Ten post edytował island 5.03.2010, 12:23:47
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
Pawel_W
post
Post #2





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

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


id nie powinno zaczynać się żadnym znakiem specjalnym oraz cyfrą... (IMG:style_emoticons/default/rolleyes.gif)

i 01 to nie to samo co 1 (IMG:style_emoticons/default/winksmiley.jpg)

Ten post edytował Pawel_W 5.03.2010, 13:23:15
Go to the top of the page
+Quote Post
island
post
Post #3





Grupa: Zarejestrowani
Postów: 67
Pomógł: 1
Dołączył: 7.09.2008

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


Zmieniłem id na

id01
..
id20

ale dalej w Operze i w IE nie działa.
Go to the top of the page
+Quote Post
thek
post
Post #4





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




To może dla zupełnej pewności ustawiaj aktualnemu boxowi value, zanim ruszysz w którąkolwiek stronę.
Go to the top of the page
+Quote Post
island
post
Post #5





Grupa: Zarejestrowani
Postów: 67
Pomógł: 1
Dołączył: 7.09.2008

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


Dzięki. Pomogło.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 20:09