Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Wczytywanie wartości zmiennej w poleceniu obiektu
sianx
post 28.06.2010, 17:58:09
Post #1





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 18.02.2010

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


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
Go to the top of the page
+Quote Post
darko
post 28.06.2010, 19:20:41
Post #2





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


Hmm... może zastąp zdarzenie onfocus zdarzeniem onkeydown questionmark.gif


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post
sianx
post 31.07.2010, 09:54:44
Post #3





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 18.02.2010

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


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.

Ten post edytował sianx 31.07.2010, 09:56:44
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: 31.07.2025 - 08:24