Zdarzenie onclick i wysyłanie form'a PHP

Odpowiedz Nowy wątek
2018-11-05 22:16
0

Cześć!
Czy jest możliwość aby na jednym przycisku button wykonać akcję submit w form i jednocześnie podpiąć pod ten przycisk działające zdarzenie "onclick"?
Testowy program jest tutaj: https://jsfiddle.net/0rhy1bo6/
Z input'a, w którym wpisuję dane po kliknięciu po stronie PHP wykonują się prawidłowo, natomiast pod żadnym pozorem zdarzenie "onclick" w umieszczonym form'ie nie zadziała.
Jeżeli nie da się tego zrobić to czy da się to w jakiś sposób obejść? Aby żądane dane otrzymał i jednocześnie PHP i JS?

Pozdrawiam

Pozostało 580 znaków

2018-11-06 00:05
2

Da się. Poczytaj o e.preventDefault. Może nie do końca zrobisz dwie rzeczy na raz, lecz na 100% dasz rade najpierw wywołać zdarzenie z onclicka, a potem submitować forma.. Poza tym możesz zrobić inaczej - zrób buttona <button type="button" class="abc".., na formie nadaj np <form class="myClass" i onclick podpinsz pod abc, a w środku submitujesz formularz z klasą myClass. Natomiast jeśli nie chcesz by po submicie przeniosło Cię na podaną w action forma stronę, to zainteresuj się ajaxem.

edytowany 1x, ostatnio: axelbest, 2018-11-06 00:06

Pozostało 580 znaków

2018-11-06 07:52

@Jumpeq: twoje zdarzenie działa. Problem w tym, że zanim zdążysz zaobserwować działanie twojej funkcji Show to zostajesz przekierowany na inną stronę, ponieważ Twój przycisk wysyła formularz. Rozwiązaniem jest to, o czym napisał @axelbest, ale warto mieć na uwadze to, że te zdarzenia (submit, click) się nie wykluczają.

Małe sprostowanie. Twój kod nie działa, ale jego zapis jest prawidłowy. To znaczy można użyć za równo atrybutu onclick, jak i funkcji addEventListener. Problem u Ciebie jest taki, że jeżeli używasz onclick to funkcja musi być zdefiniowana przed tym kodem HTML. U Ciebie jest to później. Taki kod zadziała:
https://jsfiddle.net/0rhy1bo6/1/

edytowany 1x, ostatnio: Desu, 2018-11-06 07:56

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0