jQuery funkcja zapętla się, jak przerwać

jQuery funkcja zapętla się, jak przerwać
SH
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 152
0

Witam,
mam poniższy kod i niestety jak dodam go na stronę to ona ciągle się odświeża.

Kopiuj
<script>
	jQuery(document).ready(function(){
		var ile = '0';
		if(ile=='0') {
			jQuery('#sea_butt').click();
			ile = '1';
		}	
	});
</script>

Wiem, że to zła praktyka lecz nie mam wiedzy aby uzyskać oczekiwany rezultat więc kombinuję. Chcę uzyskać rezultat, że po załadowaniu strony następuje kliknięcie button#sea_butt w celu wywołania zdarzenia onclick, które jest w tym buttonie:
<button id="sea_butt" class="fm-button search-button small" onclick="fm_form_submit(event, 'admin_form'); return false;" title="Search">Search</button>

sihox
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 106
1

Przecież uzyskujesz dokładnie taki rezultat jakiego oczekujesz. Zapewne funkcja fm_form_submit wysyła Ci formularz przeładowując tym samym stronę. Zauważ także, że w tych okolicznościach, ten warunek:

Kopiuj
var ile = '0';
        if(ile=='0') {

zawsze jest spełniony ;)

SH
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 152
0

Dziękuję za odpowiedź. Jak to ugryźć ? aby całość została wywołana tylko raz ?
Może da się bezpośrednio do jQuery wsadzić onclick fm_form_submit(event, 'admin_form') ?
Nie mam pojęcie jak to zrobić.

PO
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Starogard Gdański
  • Postów: 11
0

Wywołaj event.preventDefault(); w fm_form_submit() i obsłuż formularz ajaxem.

SH
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 152
0

Niewiele mi to mówi. Cóż będę musiał jakoś kombinować metodą prób i błędów.
Dziękuję za pomoc.

ŁF
  • Rejestracja: dni
  • Ostatnio: dni
0

Nie ma co kombinować, masz spieprzony warunek i tyle. Być może uważasz, że czas życia zmiennych js jest dłuższy od czasu życia strony - no niestety tak nie jest. Jeśli chcesz coś zapamiętać pomiędzy kolejnymi odświeżeniami strony, to użyj ciasteczek albo przekaż to w url'u.
Zresztą napisz, co chcesz docelowo ("biznesowo") osiągnąć, to coś podpowiemy.

SH
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 152
0

Wszystko fajnie by działało ale nie wiem dlaczego powstaje zapętlenie.
Chciałbym zrobić tylko tak aby po załadowaniu strony został w tle kliknięty przycisk:
<button id="sea_butt" class="fm-button search-button small" onclick="fm_form_submit(event, 'admin_form'); return false;" title="Search">Search</button>

Kompletnie nie wiem jak sobie z tym poradzić.

ŁF
  • Rejestracja: dni
  • Ostatnio: dni
0

Ale przecież dokładnie to masz zrobione:

  • przycisk "się" klika
  • zostaje wywołane wysłanie formularza POSTem
  • serwer zwraca tę samą stronę, z której dane zostały wysłane
  • na tej stronie masz ten sam kod js, który symuluje kliknięcie
  • przycisk "się" klika
  • zostaje wywołane wysłanie formularza POSTem
  • serwer zwraca tę samą stronę, z której dane zostały wysłane
  • ...

Zapamiętaj stan w ciastku lub w url'u (poprzez jakiś parametr w query stringu), albo niech serwer zwraca inną stronę.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.