Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Mam problem z prawidłowym wywołaniem funkcji za pomocą onsubmit
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
Thermosboss
Witam wszystkich, w związku z tym, że w js dopiero raczkuję, ogromnie proszę o wsparcie.
Wydaje mi się, że problem nie jest złożony ale już wiele godzin bezskutecznie szukam rozwiązania.


Mój problem leży w tym, że po wypełnieniu formularza potrzebuję wywołać kilka funkcji w onsubmit

W zasadzie wszystko działa dobrze poza tym, że wywołują się w złej kolejności?


W tej chwili mam taką akcję, że po kliknięciu submit, otwiera się prawidłowo okno, które jest celem formularza,
jako mały popup potwierdzający rejestrację. W dużym oknie otwiera się nowa strona do której przechodzimy
po rejestracji i funkcja sprawdzająca poprawność formularza także działa.

Jednak, gdy formularz jest wypełniony błędnie, to pojawia się alert o tym, że są błędy ale popup
i przejście do nowej strony i tak są realizowane.

Mój problem polega na tym, że nie wiem co i jak zmienić w kodzie aby dopiero poprawność formularza
wiązała się z wykonaniem akcji, których oczekuję. Czyli najpierw funkcja SprawdzFormularz(this);
a dopiero gdy jest wypełniony prawidłowo, otwiera się popup i przechodzi do nowej strony.



  1. <form target="celformularza" action="post.php" name="forma1" method="post"
  2. onSubmit="window.open('','celformularza', 'width=400,height=280'); window.open('http://jakisadres.pl', '_top');
  3. return SprawdzFormularz(this);">
  4. tutaj pola formularza...
  5. </form>



Mam nadzieję, że to co napisałem jest zrozumiałe...
Na wszelki wypadek podaję jeszcze kod funkcji SprawdzFormularz ale to gotowiec, więc chyba nie ma nic wspólnego?


  1. <script language="javascript"> function SprawdzFormularz(f) { if (f.email.value=='')
  2. { alert('Nie podałeś/aś adresu e-mail.'); return false; } if ( ((f.email.value.indexOf('@',1))==-1)||(f.email.value.indexOf('.',1))==-1 )
  3. { alert('Podałeś/aś błędny adres e-mail'); return false; } if (f.imie.value=='') { alert('Nie podałeś/aś swojego imienia'); return false; }
  4. if (f.pp.checked == false ) { alert('Musisz zgodzić się z Polityką Prywatności.'); return false; } else { return true; } } </script>



Bardzo proszę o rozwiązanie, bo brak mi pomysłów i niestety umiejętności wstydnis.gif
wookieb
Popraw BBCODE
Thermosboss
Poprawiłem kod, czy ktoś może podsunąć jakieś rozwiązanie?
Wiem, że mógłbym to zrealizować na osobnej funkcji, którą wywołam w onsubmit ale nie wiem jak to powinno wyglądać.
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.