Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wczytywanie wartości zmiennej w poleceniu obiektu
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
sianx
Witam,

ciężko jest mi dobrze jednoznacznie nazwać mój problem, przez co nie udało mi się z pomocą Google znaleźć właściwej odpowiedzi.
Do rzeczy:

mam polecenie ustawiające focus w odpowiednim polu tekstowym o id = wartość zmienna:

document.forms.formularz.zmienna.focus();

problem w tym, że zmienna - z tego co zauważyłem - traktowana jest jako konkretna nazwa = "zmienna", a ja potrzebuję, aby owa wartość dynamicznie się zmieniała, zatem potrzebuję potraktowania jej jako zmiennej globalnej, która została już wcześniej zadeklarowana.


Dla rozjaśnienia problemu przedstawiam kod, którego poruszany temat dotyczy:

  1. var pozycja;
  2.  
  3. function UpId(id){
  4.  
  5. pozycja = id;
  6.  
  7. }
  8.  
  9. function wstaw(znak){
  10.  
  11. var a = document.getElementById(pozycja);
  12. a.value += znak;
  13. document.forms.formularz.pozycja.focus();
  14.  
  15. }


Dalej...
W polu tekstowym INPUT za pomocą "onfocus" uruchamiana jest funkcja UpId(parametr), gdzie parametr to ciąg znaków, generowany osobno dla każdego pola przy użyciu pętli for, więc np. otrzymujemy:

  1. <input type="text" name="p1" id="I" onfocus="UpId('I')" />
  2. <input type="text" name="p2" id="II" onfocus="UpId('II')" />
  3. ...
  4. <input type="text" name="p6" id="IIIIII" onfocus="UpId('IIIIII')" />


Jak widać zależy mi na tym, by po dynamicznym wstawieniu znaku w dane pole INPUT kursor pozostawał w tym polu, a aktualnie po wstawieniu kursor znika.

Proszę o pomoc i wyrozumiałość, gdyż JavaScript nie jest moją mocą stroną. smile.gif

Z góry dziękuję wstydnis.gif
darko
Hmm... może zastąp zdarzenie onfocus zdarzeniem onkeydown questionmark.gif
sianx
Hmmm... nie wiem czy dobrze zrozumiałem, ale po podmianie focus na keydown nic się nie zmieniło. Właściwie to chyba i tak metoda związana z reakcją klawiatury mnie nie ratuje, gdyż potrzebuję, aby również po samym kliknięciu myszką skrypt działał prawidłowo.

W moim formularzu użytkownik będzie wpisywać jakiś ciąg - wyraz obcojęzyczny w dane pole. Jako, że owe słowa nie są polskie mogą wystąpić zagraniczne znaki specjalne, które chciałbym, aby użytkownik po kliknięciu w link-guzik bez problemu wstawiał w dane pole, w którym aktualnie pisze ... tę część skryptu mam, ale dla komfortu użytkownika, chcę również, aby po kliknięciu w owy guzik i pojawieniu się znaku w polu, użytkownik mógł pisać dalej, bez konieczności klikania (ustawiania kursora) w pole tekstowe, w którym aktualnie pisze.

Zatem wydaje mi się, że klawiatura bezpośrednio do skryptu się nie przydaje. Mimo to dziękuję za próbę pomocy oraz proszę o inne propozycje.

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

Udało mi się znaleźć rozwiązanie - swoją drogą bardzo proste:

zamiast formuły:
  1. document.forms.formularz.pozycja.focus();

wystarczy użyć bezpośrednio:
  1. document.getElementById(pozycja).focus();


Pozdrawiam

Temat uważam za zamknięty.
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.