Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zabezpieczenie formularza przed opuszczniem
Forum PHP.pl > Forum > Po stronie przeglądarki
Wilu88
Witam

Tworze właśnie dosyć długi formularz, którego zawartość wysyłana jest do bazy danych. Chciałbym go zabezpieczyć przed przypadkowym kliknięciem wstecz, lub jakiś inny link.

Powinien on działać na zasadzie, że jeśli zostanie cokolwiek wpisane w formularzu, to powinien włączyć się system, który w momencie próby przejścia na inną stronę wyrzuci alert z TAK lub NIE. Jeśli ktoś kliknie TAK no to przeniesie go na tą stronę, jeśli wybierze NIE to użytkownik pozostanie na stronie.
blooregard
Musisz odpowiednio oprogramować w javascripcie akcje onsubmit oraz onunload.
Wilu88
Zrobiłem coś takiego:

  1. window.onunload=UnLoaded;
  2.  
  3. function UnLoaded(){
  4. var answer = confirm ("Czy napwno chcesz opuścić stronę?")
  5. if (answer) {
  6. window.location= currentURL.href;
  7. }
  8. else{
  9. }
  10. }


I gdy klikam na tak to rzeczywiście przenosi na tą stronę, jednak gdy kliknę na NIE to także przenosi mnie na tą stronę, w potrzebował bym zostać na tej stronie z uzupełnionym formularzem, czyli refresh odpada.
Theqos
Możesz spróbować z onbeforeunload, ale nie wiem jak to jest z obsługą tego na różnych przeglądarakach.

  1. window.onbeforeunload = unloadPage;
  2. function unloadPage() { return "Czy napwno chcesz opuścić stronę?"; }

Wilu88
Super działa tak jak chciałem.

Wielkie dzięki wink.gif

Do pełni szczęścia brakuje jednak małego drobiazgu.

Otóż chciałbym aby ten komunikat z pytaniem pojawiał się przy każdej próbie przejścia na inną stronę poza dwoma wyjątkami:

Po 1 - Kliknięcie w przycisk SUBMIT formularza
po 2 - Gdy żadne pol formularza nie zostało ruszone, czyli w wypadku że ktoś wszedł na stronę i od razu z niej wyszedł.

Podejrzewam że trzeba by było przypisać do przycisku submit i do formularza atrybut onclick czy coś w tym stylu, ale brak pomysł jak to rozgryźć próbowałem przypisać jakąś zmienną ale nie wychodziło :/
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.