![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 28.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Zrobiłem sobie formularz do wysyłania maila i napisałem bardzo prosty skrypt do obsługi.
Wciska button i działa tak jak powinno czyli wyświetla błędy jeśli jakieś pole jest niewypełnione. Niestety wciskając button ponownie wyskakuje alert "stack overflow at line 422" i wysyła dane normalnym sposobem czyli przeładowuje stronę(tylko w IE w FF nie wyskakuje alert tylko od razu przeładowuje ). Według mnie to trochę dziwne ponieważ jeżeli za pierwszym razem gdy wywołuje funkcje jest wszystko ok to za drugim też powinno. Jeśli by ktoś wiedział o co chodzi w tym bardzo bym prosił o pomoc |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 83 Pomógł: 0 Dołączył: 31.03.2002 Skąd: Toruń Ostrzeżenie: (0%) ![]() ![]() |
Metoda assign() służy do "skojarzenia" ajaksowego wywołania z formularzem. Wywołując assign(), przedefiniowujesz funkcję wywoływaną przy zdarzeniu "onsubmit", inaczej mówiąc dajesz znać przeglądarce, że przy wysłaniu formularza ma zostać wywołany ajax z podanymi parametrami. Należy to zrobić TYLKO RAZ po zbudowaniu formularza, a NIE za każdym razem przy wciśnięciu "Submit". U Ciebie wyłazi stack overflow, ponieważ po drugim kliknięciu "Submit" następuje z grubsza następujące przedefiniowanie "onsubmit":
Kod mojformularz.onsubmit = function(...) { sprawdz(); mojformularz.onsubmit(); // * patrz wyjaśnienie niżej } * Za pierwszym razem mojformularz.onsubmit() jest "pustą" metodą, za drugim razem już posiada wnętrze i wtedy następuje nieskończone rekurencyjne wywołanie. Zajrzyj do advajax.js, chodzi o poniższy fragment metody assign() Kod form["onsubmit"] = function() {
if (typeof this["_onsubmit"] != "undefined" && this["_onsubmit"]() === false) return false; if (advAJAX.submit(this, this["advajax_args"]) == false) return true; return false; } Ten post edytował msulik 10.08.2007, 12:34:28 -------------------- misiu | chór
"Zdeterminowany programista potrafi stworzyć fatalny kod w każdym języku" Allen Holub |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 07:08 |