Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [jQuery]Jak odwołać preventDefault aby w wyjątku wysłać formularz tradycjną metodą
rudolf35
post 10.12.2012, 18:41:09
Post #1





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 17.10.2007

Ostrzeżenie: (0%)
-----


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()" ?
Go to the top of the page
+Quote Post
Pawel_W
post 10.12.2012, 18:45:13
Post #2





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

Ostrzeżenie: (0%)
-----


zamiast preventDefault użyj return false umieszczając go w bloku instrukcji warunkowej (swoją drogą, umieszczenie tam preventDefault powinno dać taki sam efekt)
Go to the top of the page
+Quote Post
viking
post 10.12.2012, 18:46:11
Post #3





Grupa: Zarejestrowani
Postów: 6 378
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


A zajrzałeś do dokumentacji? http://api.jquery.com/event.preventDefault/ Bo w pierwszym z brzegu komentarzu masz dokładnie taką opisaną.


--------------------
Go to the top of the page
+Quote Post
rudolf35
post 10.12.2012, 20:07:49
Post #4





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 17.10.2007

Ostrzeżenie: (0%)
-----


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ć.
Go to the top of the page
+Quote Post
markonix
post 10.12.2012, 20:11:13
Post #5





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

Ostrzeżenie: (0%)
-----


Jak dla mnie szukaj pod pojęciem "confirm dialog" (ui).


--------------------
Go to the top of the page
+Quote Post
rudolf35
post 10.12.2012, 20:37:35
Post #6





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 17.10.2007

Ostrzeżenie: (0%)
-----


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ć.
Go to the top of the page
+Quote Post
markonix
post 10.12.2012, 20:39:11
Post #7





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

Ostrzeżenie: (0%)
-----


No to dialog UI ma możliwość tworzenia wielu przycisków i od razu do nich przypisanych akcji.


--------------------
Go to the top of the page
+Quote Post
rudolf35
post 10.12.2012, 20:52:24
Post #8





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 17.10.2007

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
viking
post 10.12.2012, 20:56:51
Post #9





Grupa: Zarejestrowani
Postów: 6 378
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


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.


--------------------
Go to the top of the page
+Quote Post
rudolf35
post 10.12.2012, 21:02:19
Post #10





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 17.10.2007

Ostrzeżenie: (0%)
-----


Cytat(viking @ 10.12.2012, 20:56:51 ) *
Możesz odpiąć akcję z submita.


Możesz rozwinąć tą myśl?
Go to the top of the page
+Quote Post
viking
post 10.12.2012, 21:06:33
Post #11





Grupa: Zarejestrowani
Postów: 6 378
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Poczytaj sobie zastąpienie $.bind, $.delegate i $.live metodą $.on Szukaj off()


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 21.06.2025 - 13:30