![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 1.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Wykorzystałem na swojej stronie skrypt autouzupełniania zamieszczony w książce "AJAX i PHP Tworzenie interaktywnych aplikacji internetowych.". Skrypt działa prawidłowo, lecz chciałem go trochę przerobić, aby dostosować go do moich potrzeb. Skrypt działa na takiej zasadzie, że w momencie pojawienia się podpowiedzi stają się one linkami i kliknięcie w podpowiedź powoduje przejście do innej strony. Jest to dobre rozwiązanie w przypadku wyszukiwarek np. google suggest, natomiast w moim przypadku skrypt ma służyć do uzupełnienia pola formularza. Będzie on wykorzystany w formularzu do wysyłania prywatnych wiadomości i jego celem ma być podpowiadanie nazw użytkowników. Zatem chciałbym aby wybranie podpowiedzi nie przenosiło do innej strony, a powodowało wpisanie nazwy w pole input. Próbowałem ten problem rozwiązać samemu kombinując z JS, ale chyba jeszcze zbyt słabo znam JS. Skrypt jest dość długi dlatego umieszczam go w osobnym pliku. http://wrzut.net/qe3h2159sh5s/suggest.txt.html Ten post edytował tomall 7.06.2009, 14:09:42 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 1.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
Znalazłem przyczynę problemu. Tekst uzupełnia się w momencie kiedy wybiorę podpowiedź z listy za pomocą strzałek klawiatury. Na mysz nie reaguje i nie wstawia tekstu do inputu. W książce wyczytałem że właśnie na mysz ten skrypt nie działa. A kod odpowiedzialny za wybór opcji z klawiatury to:
Kod /* funkcja, która wybiera obszar w obiekcie tekstowym, przekazywanym jako jej parametr */ function selectRange(oText, start, length) { // sprawdz rodzaj przeglądarki - IE czy FF if (oText.createTextRange) { //IE var oRange = oText.createTextRange(); oRange.moveStart("character", start); oRange.moveEnd("character", length - oText.value.length); oRange.select(); } else // FF if (oText.setSelectionRange) { oText.setSelectionRange(start, length); } oText.focus(); } zatem bez dodatkowych funkcji ani rusz. : / |
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.10.2025 - 11:49 |