Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: JQuery.Autocomplete, AJAX, wartość innego pola
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
bulimaxiu
Witam.

W JQuery.Autocomplete, w zapytaniu zewnętrznym (AJAX) potrzebuję umieścić parametr zawierający wartość z innego pola o znanym id.

  1. <input id="pole1" />
  2. <input id="pole2" />

Do pierwszego pola jest podpięty JQuery.Autocomplete.
  1. $(function() {
  2. $("#pole1").autocomplete('elements_ajax.php',{
  3. extraParams: {
  4. 'field': 'pole1',
  5. 'pole2': $('#pole2').val()
  6. }
  7. });

Niestety wartość jest zwracana pusta. Gdy podam w skrypcie gotową wartość - działa. Nie działa przez $() ani przez getElementById. Jak umieścić wartość innego pola w tej konfiguracji?

Pozdrawiam.
Sebastian
nospor
'pole2': $('#pole2').val()
przeciez o to jest odpalane od razu po uruchomieniu strony, a nie w momencie wysylania zadania autocomplete. No a w momencie odpalenia strony nie masz przeciez jeszcze ustalonej tej wartosci w polu, no nie?

Musisz sie podczepis pod żądanie autocomplete i te wartosc dopiero tam pobierac z pola
bulimaxiu
Racja, nie zwróciłem na to uwagi. Znalazłem, że można się podpiąć w funkcji "request" do zmiennej "extraParams" dopisując "wartoscpola2: $("#pole2").val()", ale tu trzeba by zdefinować wszystkie dodatkowe pola jakie muszę podpiąć do wszystkich pól, bez podziału na poszczególne "instancje" autocomplete'a.

Zadziałało dopisanie czegoś takiego:
  1. if (param.substr(0,3) == '!**') {
  2. extraParams[key] = $('#'+param.substr(3)).val();
  3. } else {
  4. extraParams[key] = typeof param == "function" ? param() : param;
  5. }
Wtedy jeśli w extraParams dodam linijkę, 'pole2': '!**pole2' zostanie wysłane żądanie z bieżącą wartością "pole2".

Jeśli jest lepszy sposób na realizację tego zadania, zwłaszcza poprzez wpisanie funkcji przy uruchamianiu "instancji" dla pola, to bardzo proszę o sugestię, bo wtedy obeszło by się bez modyfikacji kodu autocomplet'a.
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.