Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript] pola tekstowe
Forum PHP.pl > Forum > Przedszkole
island
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ć.
Pawel_W
id nie powinno zaczynać się żadnym znakiem specjalnym oraz cyfrą... rolleyes.gif

i 01 to nie to samo co 1 winksmiley.jpg
island
Zmieniłem id na

id01
..
id20

ale dalej w Operze i w IE nie działa.
thek
To może dla zupełnej pewności ustawiaj aktualnemu boxowi value, zanim ruszysz w którąkolwiek stronę.
island
Dzięki. Pomogło.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.