Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jQuery]Jak odwołać preventDefault aby w wyjątku wysłać formularz tradycjną metodą
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
rudolf35
Formularz standardowo jest wysyłany przez ajax. Aby zatrzymać standardowe wysłanie się formularza w kodzie obsługi zdarzenia kliknięcia przycisku formularza zawarłem linię:
Kod
e.preventDefault();


Chciałbym jednak zaimplementować pewną sytuację wyjątkową, po której formularz zostanie wysłany w tradycyjny sposób. Jak mogę anulować zatrzymanie propagacji zdarzeń przez "preventDefault()" ?
Pawel_W
zamiast preventDefault użyj return false umieszczając go w bloku instrukcji warunkowej (swoją drogą, umieszczenie tam preventDefault powinno dać taki sam efekt)
viking
A zajrzałeś do dokumentacji? http://api.jquery.com/event.preventDefault/ Bo w pierwszym z brzegu komentarzu masz dokładnie taką opisaną.
rudolf35
Cytat(viking @ 10.12.2012, 18:46:11 ) *
A zajrzałeś do dokumentacji? http://api.jquery.com/event.preventDefault/ Bo w pierwszym z brzegu komentarzu masz dokładnie taką opisaną.


Ta funkcja tylko sprawdza czy domyślne wykonywanie zdarzeń jest włączone.

Dokładnie to ma wyglądać tak, że najpierw uruchamiany jest dialog i jeśli użytkownik potwierdzi, to wysyłany jest formularz ale w standardowy sposób, więc jeśli to możliwe, to najbardziej by mi odpowiadało najpierw zatrzymać standardową akcję przeglądarki funkcją "e.preventDefault();" a następnie jeśli użytkownik potwierdzi w oknie dialogowym ją anulować.
markonix
Jak dla mnie szukaj pod pojęciem "confirm dialog" (ui).
rudolf35
Cytat(markonix @ 10.12.2012, 20:11:13 ) *
Jak dla mnie szukaj pod pojęciem "confirm dialog" (ui).


Z "confirm dialog" jest ten problem, że można tylko potwierdzić, albo anulować. Ja potrzebuję bardziej rozbudowanego dialogu i nie mogę go użyć.
markonix
No to dialog UI ma możliwość tworzenia wielu przycisków i od razu do nich przypisanych akcji.
rudolf35
Cytat(markonix @ 10.12.2012, 20:39:11 ) *
No to dialog UI ma możliwość tworzenia wielu przycisków i od razu do nich przypisanych akcji.


Wiem o tym. Mój problem polega na tym, że jeśli zatrzymam wysłanie się formularza funkcją "prevenDefault", aby strona się nie odświeżyła tylko wyświetliło się okno dialogowe, to nie potrafię wznowić wysłania formularza po wybraniu odpowiedniej opcji.
viking
Chyba patrzymy na coś innego. Pytanie @Thonixx, 2 lata temu. Identyczne jak twoje. Inna sprawa że raczej źle do problemu podchodzisz. Możesz albo dać okno confirm i jeśli odpowiedź true to wtedy dopiero preventDefault(). Możesz odpiąć akcję z submita. I pewnie kilka innych pomysłów.
rudolf35
Cytat(viking @ 10.12.2012, 20:56:51 ) *
Możesz odpiąć akcję z submita.


Możesz rozwinąć tą myśl?
viking
Poczytaj sobie zastąpienie $.bind, $.delegate i $.live metodą $.on Szukaj off()
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.