jQuery funkcja zapętla się, jak przerwać

0

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

<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>

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:

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

zawsze jest spełniony ;)

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ć.

0

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

0

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

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.

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ć.

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ę.

1 użytkowników online, w tym zalogowanych: 0, gości: 1