Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Zdarzenie focus w polach formularza i przechwycenie zaznaczonego pola.
czarek1986
post 27.02.2010, 00:00:45
Post #1





Grupa: Zarejestrowani
Postów: 72
Pomógł: 0
Dołączył: 15.09.2008

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


Witam

Chciałbym osiągnąć następujący efekt:

Mam formularz z ilomaś polami input i textarea. Chce tak zadeklarować obsługę zdarzenia onfocus dla tych pól w javascript aby deklarowało się to przy wczytaniu strony. Następnie po kliknięciu w dowolne z tych pól ma się wykonywać zadeklarowana wcześniej funkcja która sprawdzi jakie pole zostało kliknięte i zapisze to do oddzielnej zmiennej. Następnie będzie można wykonać jakieś operacje na tej zmiennej co sprawi, że będą one wykonywane zawsze na aktywowanym polu np. zmiana tła itp. Nie chce robić tego poprzez zadeklarowanie zdarzenia w tagach html, gdyż formularz może się zmieniać dynamicznie i sprawiało by to problemy. Wole aby takie przypisanie zdarzenia do każdego pola input i textarea robiło się automatycznie. Robiłęmt o już w jQuery i działało poprawnie ale w czystym js mi to kompletnie nie wychodzi. Czy może ktoś mi z tym pomóc, bo szukam w google juz drugi dzien i nic nie mogę znaleźć dokładnie pasującego do mojego problemu.


Kod w jQuery wyglądał tak:


  1.  
  2. $(document).ready(function() {
  3.     $("input[type='text']").focus(function() {setFocus(this);});
  4.     $("textarea").focus(function() {setFocus(this);});
  5. });
  6.  
  7.  
  8. function setFocus(input) {
  9.     focus = input;
  10. }
  11.  


Ten post edytował czarek1986 27.02.2010, 00:02:29
Go to the top of the page
+Quote Post
kamil4u
post 27.02.2010, 21:36:29
Post #2





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

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


a ) document.getElementsByTagName - po inputach i textarea
b ) robisz pętlę po tych elementach
c ) spr. w pętli czy: input.type == 'text'
d ) w pętli po tych elementach zapisujesz:
Kod
element.onfous = function(){ TwojaFunkcja(this); };


i powinno chodzić smile.gif

PS. Pętlę możesz zrobić w taki trochę inny sposób:
Kod
for(var tablica = document.getElementsByTagName('input'), i=0, e; e=tablica[i++];){
alert(e); //zmienna e zawiera już referencję do konkretnego elementu :)
}


Ten post edytował kamil4u 27.02.2010, 21:37:30


--------------------
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: 12.05.2025 - 06:24